HDOJ2037 ACM杭电题目 今年暑假不AC 为什么总是WA
代码如下:#include<stdio.h>#include<string.h>structQuduan{intx,y;};voidSort(structQuduans[...
代码如下:
#include<stdio.h>
#include<string.h>
struct Quduan
{
int x,y;
};
void Sort(struct Quduan s[],int n)//冒泡排序,y从小到大,并且当y相同时,x大的优先;
{
int a,i,j;
struct Quduan temp;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
{
if(s[i].y==s[j].y&&s[i].x<s[j].x||s[i].y>s[j].y)
{
temp=s[i];
s[i]=s[j];
s[j]=temp;
}
}
}
int Judge(struct Quduan s[],int n)//核心贪心算法
{
int count=1,i,end;
end=s[0].y;
for(i=1;i<n;i++)
{
if(s[i].x>=end)
{count++;end=s[i].y;}//a[i]=1;}
}
return count ;
}
int main()
{
int n,count,i;
while((scanf("%d",&n))!=EOF)
{
struct Quduan s[110];
if(!n)break;
for(i=0;i<n;i++)
{
scanf("%d%d",&s[i].x,&s[i].y);
if(s[i].y==0)s[i].y=24;
}
Sort(s,n);
count=Judge(s,n);
printf("%d\n",count);
}
return 0;
} 展开
#include<stdio.h>
#include<string.h>
struct Quduan
{
int x,y;
};
void Sort(struct Quduan s[],int n)//冒泡排序,y从小到大,并且当y相同时,x大的优先;
{
int a,i,j;
struct Quduan temp;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
{
if(s[i].y==s[j].y&&s[i].x<s[j].x||s[i].y>s[j].y)
{
temp=s[i];
s[i]=s[j];
s[j]=temp;
}
}
}
int Judge(struct Quduan s[],int n)//核心贪心算法
{
int count=1,i,end;
end=s[0].y;
for(i=1;i<n;i++)
{
if(s[i].x>=end)
{count++;end=s[i].y;}//a[i]=1;}
}
return count ;
}
int main()
{
int n,count,i;
while((scanf("%d",&n))!=EOF)
{
struct Quduan s[110];
if(!n)break;
for(i=0;i<n;i++)
{
scanf("%d%d",&s[i].x,&s[i].y);
if(s[i].y==0)s[i].y=24;
}
Sort(s,n);
count=Judge(s,n);
printf("%d\n",count);
}
return 0;
} 展开
1个回答
展开全部
#include<stdio.h>
#include<string.h>
struct Quduan
{
int x,y;
};
void Sort(struct Quduan s[],int n)//冒泡排序,y从小到大,并且当y相同时,x大的优先;
{
int a,i,j;
struct Quduan temp;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
{
if(s[i].y==s[j].y&&s[i].x<s[j].x||s[i].y>s[j].y)
{
temp=s[i];
s[i]=s[j];
s[j]=temp;
}
}
}
int Judge(struct Quduan s[],int n)//核心贪心算法
{
int count=1,i,end;
end=s[0].y;
for(i=1;i<n;i++)
{
if(s[i].x>=end)
{count++;end=s[i].y;}//a[i]=1;}
}
return count ;
}
int main()
{
int n,count,i;
while((scanf("%d",&n))!=EOF)
{
struct Quduan s[110];
if(!n)break;
for(i=0;i<n;i++)
{
scanf("%d%d",&s[i].x, &s[i].y);
//if(s[i].y==0) s[i].y=24; 这行不应该有
}
Sort(s,n);
count=Judge(s,n);
printf("%d\n",count);
}
return 0;
}
更多追问追答
追问
还是wa 不过谢谢你
追答
不WA啊,我交过了,是AC
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询