Qiuqiqiu  
不管道路多么崎岖坎坷,我永远不停下追逐梦想的脚步!

http://acm.hdu.edu.cn/showproblem.php?pid=1050

贪心写的。写完后百度发现直接记录每个走廊出现的次数就行了,巧妙的思路,没想到。

View Code
 1 #include <iostream>
2 #include <cstdio>
3 #include <cstdlib>
4 #include <cstring>
5 using namespace std;
6 const int N=250;
7 struct corridor
8 {
9 int b,e;
10 }a[N];
11 int s[N];
12 int cmp(const void *a,const void *b)
13 {
14 return ((corridor*)a)->b - ((corridor*)b)->b;
15 }
16 int main()
17 {
18 int T,i,j,p,n,t;
19 scanf("%d",&T);
20 while (T--)
21 {
22 scanf("%d",&n);
23 for (i=1;i<=n;i++)
24 {
25 scanf("%d%d",&a[i].b,&a[i].e);
26 if (a[i].b%2) a[i].b++;
27 if (a[i].e%2) a[i].e++;
28 if (a[i].b>a[i].e) {t=a[i].b; a[i].b=a[i].e; a[i].e=t;}
29 }
30 qsort(a+1,n,sizeof(a[0]),cmp);
31 memset(s,0,sizeof(s)); s[0]=-1;
32 for (i=1;i<=n;i++)
33 {
34 for (p=0,j=1;j<=n;j++)
35 if (s[j]>s[p] && a[i].b>s[j]) p=j;
36 s[p]=a[i].e;
37 }
38 for (i=1;i<=n+1;i++)
39 if (!s[i]) break;
40 printf("%d\n",(i-1)*10);
41 }
42 return 0;
43 }

 

posted on 2011-12-30 21:45  Qiuqiqiu  阅读(241)  评论(0编辑  收藏  举报