hdu 1050 Moving Tables 贪心

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1050

下午没事在看一个博客里的贪心专题,虽然没写,不过想了下思路,思路对的就没看了,没思路的或者不一样的看了看。

这道题没什么思路,有的思路写了下不对,就是以结束时间为依据排序,然后每次找尽量多的,这种不对我想可能是因为有一部分是从大号移动到小号的,这样就有重合了

View Code
 1 #include <iostream>
 2 #include <cstring>
 3 #include <cstdio>
 4 #include <algorithm>
 5 using namespace std;
 6 
 7 int visit[300];
 8 
 9 int main()
10 {
11     int i,j,k,n,ans,w,x,y;
12     scanf("%d",&k);
13     while (k--)
14     {
15         scanf("%d",&n);
16         memset(visit,0,sizeof(visit));
17         for (i=1;i<=n;i++)
18         {
19             scanf("%d%d",&x,&y);
20             x=(x-1)/2;
21             y=(y-1)/2;
22           if(x>y)
23             {
24                 w=x;
25                 x=y;
26                 y=w;
27             }
28          for (j=x;j<=y;j++)
29             visit[j]++;
30         }
31         ans=0;
32         for (i=1;i<=200;i++)
33             if(visit[i]>ans)ans=visit[i];
34         
35             printf("%d\n",ans*10);
36     }
37     return 0;
38 }

 

wa

View Code
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
struct ss {
    int x,y;
}len[300];
int visit[300];
int cmp(ss s,ss t)
{
    if(s.y==t.y)return s.x<t.x;
    else return s.y<t.y;
}
int main()
{
    int i,j,k,n,ans,w;
    scanf("%d",&k);
    while (k--)
    {
        scanf("%d",&n);
        for (i=1;i<=n;i++)
        {
            scanf("%d%d",&len[i].x,&len[i].y);
            if(len[i].x>len[i].y)
            {
                w=len[i].x;
                len[i].x=len[i].y;
                len[i].y=w;
            }
            visit[i]=0;
        }
        sort(len+1,len+1+n,cmp);
        ans=0;
        for (i=1;i<=n;i++)
            if(!visit[i])
            {
                ans++;
                w=len[i].y;
                visit[i]=1;
                for (j=i+1;j<=n;j++)
                {
                    if(len[j].x>w)
                    {
                        visit[j]=1;
                        w=len[j].y;
                    }
                }
            }
            printf("%d\n",ans*10);
    }
    return 0;
}
posted @ 2012-04-10 20:00  我们一直在努力  阅读(207)  评论(0编辑  收藏  举报