hdu 1051 Wooden Sticks(很水的贪心)
View Code 1 #include<iostream>
2 #include<cstdio>
3 #include<algorithm>
4 using namespace std;
5 struct node
6 {
7 int l,w;
8 }arr[5100];
9 int vis[5100];
10 int cmp(node x,node y)
11 {
12 if(x.l==y.l)
13 return x.w<y.w;
14 else
15 return x.l<y.l;
16 }
17 int main()
18 {
19 int t,n;
20 scanf("%d",&t);
21 while(t--)
22 {
23 scanf("%d",&n);
24 for(int i=1;i<=n;i++)
25 scanf("%d %d",&arr[i].l,&arr[i].w);
26 sort(arr+1,arr+1+n,cmp);
27 /*for(int i=1;i<=n;i++)
28 printf("%d***%d\n",arr[i].l,arr[i].w);*/
29 memset(vis,0,sizeof(vis));
30 int ans=0,temp;
31 for(int i=1;i<=n;i++)
32 if(vis[i]==0)
33 {
34 temp=arr[i].w;
35 ans++;
36 vis[i]=1;
37 //printf("i=%d*****\n",i);
38 for(int j=i+1;j<=n;j++)
39 if(arr[j].w>=temp&&vis[j]==0)
40 {
41 temp=arr[j].w;
42 vis[j]=1;
43 //printf("j=%d\n",j);
44 }
45 }
46 printf("%d\n",ans);
47 }
48 system("pause");
49 return 0;
50
2 #include<cstdio>
3 #include<algorithm>
4 using namespace std;
5 struct node
6 {
7 int l,w;
8 }arr[5100];
9 int vis[5100];
10 int cmp(node x,node y)
11 {
12 if(x.l==y.l)
13 return x.w<y.w;
14 else
15 return x.l<y.l;
16 }
17 int main()
18 {
19 int t,n;
20 scanf("%d",&t);
21 while(t--)
22 {
23 scanf("%d",&n);
24 for(int i=1;i<=n;i++)
25 scanf("%d %d",&arr[i].l,&arr[i].w);
26 sort(arr+1,arr+1+n,cmp);
27 /*for(int i=1;i<=n;i++)
28 printf("%d***%d\n",arr[i].l,arr[i].w);*/
29 memset(vis,0,sizeof(vis));
30 int ans=0,temp;
31 for(int i=1;i<=n;i++)
32 if(vis[i]==0)
33 {
34 temp=arr[i].w;
35 ans++;
36 vis[i]=1;
37 //printf("i=%d*****\n",i);
38 for(int j=i+1;j<=n;j++)
39 if(arr[j].w>=temp&&vis[j]==0)
40 {
41 temp=arr[j].w;
42 vis[j]=1;
43 //printf("j=%d\n",j);
44 }
45 }
46 printf("%d\n",ans);
47 }
48 system("pause");
49 return 0;
50


浙公网安备 33010602011771号