首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >POJ PKU 1065 Wooden Sticks 3636 Nested Dolls 解题报告

POJ PKU 1065 Wooden Sticks 3636 Nested Dolls 解题报告

作者头像
owent
发布2018-08-01 17:28:45
4170
发布2018-08-01 17:28:45
举报
文章被收录于专栏:owentowent

3636 Nested Dolls

题目链接:[http://acm.pku.edu.cn/JudgeOnline/problem?id=3636

](http://acm.pku.edu.cn/JudgeOnline/problem?id=3636)好吧,这题我看了解题报告。而且解题报告有错误的。只考虑w递增,没考虑w值相等的情况。

我自己这里加进去了判断。主要是看解题报告后才知道数据这么弱,就按他的写了

大意是给出N个玩具,要求放k组,其中每组都是大玩偶套小玩偶。在w(宽)和h(高)都大于

另一个玩偶的时候才能套进去问最小的k,就是组数。

先按w升序再按h降序排序,然后一个一个往里插就行了,要稍微注意下判断相等的情况

代码:

#include <iostream>
#include <functional>
#include <cstdio>
#include <algorithm>
using namespace std;
#define MAXN 20002
 
struct doll
{
    int w,h;
};
doll dolls[MAXN];
doll list[20002];
 
bool cmp(doll a, doll b)
{
    if(a.w != b.w)
        return a.w < b.w;
    return a.h > b.h;
}
int main()
{
    int t, m, i, num, l, r, mid;
    scanf("%d", &t);
    while(t --)
    {
        scanf("%d", &m);
        for(i = 0; i < m; i ++)
            scanf("%d %d", &dolls[i].w, &dolls[i].h);
 
        sort(dolls, dolls + m, cmp);
 
        memset(list, 0, sizeof(list));
 
        num = 0;
 
        for(i = 0; i < m; i ++)
        {
            l = 0;
            r = num;
            while(l < r)
            {
                mid = (l + r) / 2;
                if((list[mid].w >= dolls[i].w) || list[mid].h >= dolls[i].h)
                    l = mid + 1;
                else
                    r = mid;
            }
 
            if(num == l)
                num ++;
            list[l].w = dolls[i].w;
            list[l].h = dolls[i].h;
        }
 
        printf("%d\n", num);
    }
    return 0;
}

至于 1065 Wooden Sticks 题

都是一样的,去掉了相等的条件(这样简单多了,直接俩个都升序排列就好了)

代码就是改了

return a.h > b.h; 改为 return a.h < b.h;

if((list[mid].w >= dolls[i].w) || list[mid].h >= dolls[i].h)

改为if((list[mid].w > dolls[i].w) || list[mid].h > dolls[i].h)

其他的都不变,这里就不重贴了

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2010-02-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档