您的位置:首页 > 其它

杭电2037今年暑假不AC

2014-07-29 15:15 197 查看
第一种方法:

#include<stdio.h>

#include<algorithm>

//using namespace std;

int main()

{

int n,m;

while(~scanf("%d",&n),n!=0)

{

int i,j,a[110],b[110],t,k,r,p;

for(i=0;i<n;i++)

scanf("%d %d",&a[i],&b[i]);

for(j=1;j<n;j++)

for(i=0;i<n-j;i++)

if(b[i]>b[i+1])

{

r=b[i];

b[i]=b[i+1];

b[i+1]=r;

p=a[i];

a[i]=a[i+1];

a[i+1]=p;//这三步刚开始时忘掉了,而答案是对的,找了好长时间。

}

//sort(b,b+n);

for(i=0,k=0,t=1;i<n;i++)

{

if(a[i]>=b[k])

{

t++;

k=i;

}

}

printf("%d\n",t);

}

return 0;

}

第二种方法:

利用结构体和贪心算法

#include<stdio.h>

#include<algorithm>

using namespace std;

struct stu

{

int a;

int b;

};

bool cmp(stu q,stu r)

{

return q.b<r.b;

}

int main()

{

struct stu s[110];

int n,m;

while(~scanf("%d",&n)&&n!=0)

{

int i,j,k,cout;

for(i=0;i<n;i++)

scanf("%d %d",&s[i].a,&s[i].b);

sort(s,s+n,cmp);

for(i=1,cout=1,k=0;i<n;i++)

if(s[i].a>=s[k].b)

{

cout++;

k=i;

}

printf("%d\n",cout);

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: