读书人

hdu1050,测试了很多数据都对但是仍是

发布时间: 2012-08-26 16:48:05 作者: rapoo

hdu1050,测试了很多数据都对,但是还是WA,请大家帮忙看看
#include<iostream>
#include<algorithm>
using namespace std;
struct node{
int ts,te;
}a[210];
bool cmp(node n1,node n2)
{ if(n1.te!=n2.te)
return n1.te<n2.te;
else
return n1.ts>n2.ts;
}

int main()
{
int n,i,j,k,;
int visit[110];
int result,temp;
cin>>k;
while(k--)
{ scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%d",&a[i].ts,&a[i].te);
if(a[i].ts>a[i].te)
{
temp=a[i].ts;
a[i].ts=a[i].te;
a[i].te=temp;
}
if(a[i].te%2==1)a[i].te++;
}
sort(a,a+n,cmp);
memset(visit,0,sizeof(visit));
result=0;
int flag=1;
int s;

while(flag)
{
result+=1;

for(i=0;i<n;i++)
if(!visit[i])
{
j=i;
visit[j]=1;
break;
}


for(i=0;i<n;i++)
{
if(!visit[i]&&a[i].ts>a[j].te)
{

j=i;
visit[i]=1;
}
}
s=0;
for(int w=0;w<n;w++)
{
if(visit[w])
{ s++;
}
if(s==n)flag=0;
}
}

cout<<result*10<<endl;
}
// system("pause");
return 0;
}



[解决办法]
你这代码一点注释都没有,你也不说程序功能,真心蛋疼!
[解决办法]

C/C++ code
#include<iostream>#include<algorithm>using namespace std;struct node{  int ts,te;  }a[210];bool cmp(node n1,node n2){ /*改  if(n1.te!=n2.te)  return n1.te<n2.te;  else  return n1.ts>n2.ts;很可能这行是主要错误*/  return n1.ts<n2.ts;}   int main(){  int n,i,j,k;//错int n,i,j,k,;  int visit[210];//int visit[110];  int result,temp;  cin>>k;  while(k--)  {     scanf("%d",&n);  for(i=0;i<n;i++)  {  scanf("%d%d",&a[i].ts,&a[i].te);  if(a[i].ts>a[i].te)  {  temp=a[i].ts;  a[i].ts=a[i].te;  a[i].te=temp;  }  //改if(a[i].te%2==1)a[i].te++;  a[i].ts=(a[i].ts+1)/2;//加  a[i].te=(a[i].te+1)/2;//加  }  sort(a,a+n,cmp);  memset(visit,0,sizeof(visit));  result=0;  int flag=1;  int s;  j=0;//加  visit[0]=1;//加  while(flag)  {    result+=1;    flag=0;      //以下大改    for(i=0;i<n;i++)    {      if(!visit[i]&&a[i].ts>a[j].te)      {        j=i;        visit[i]=1;      }    }              for(i=0;i<n;i++)    {        if(!visit[i])      {        flag=1;        j=i;        visit[i]=1;        break;      }    }  }      cout<<result*10<<endl;  }  // system("pause");  return 0;}
[解决办法]
上个代码参考下:
C/C++ code
#include"stdio.h"int a[205];int main(){    int T,t,i,x,y,max,n;    scanf("%d",&T);    while(T--)    {        for(i=0;i<=200;i++)        a[i]=0;        scanf("%d",&n);        while(n--)        {            scanf("%d%d",&x,&y);            if(x>y)            {                t=x;x=y;y=t;}                for(i=(x+1)/2;i<=(y+1)/2;i++)                a[i]++;        }        max=0;        for(i=1;i<=200;i++)        if(max<a[i])        max=a[i];        printf("%d\n",max*10);    }    return 0;} 

读书人网 >C++

热点推荐