首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

hdu1050,测试了很多数据都对,但是仍是WA,请大家帮忙看看

2012-08-26 
hdu1050,测试了很多数据都对,但是还是WA,请大家帮忙看看#includeiostream#includealgorithmusing name

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;} 

热点排行