2005 NPSC E. 聯立多元一次方程式
測資很大,1000*1000個數字,"同步"就會很重要!同步"有時候"會+快,看情況
/***********************************************************/
#include<stdio.h>
#include<stdlib.h>
main()
{
int t,n,maxflag;
double sum,max,m;
while(scanf("%d",&t)==1)
{
int a,b,c,flag;
while(t--)
{
scanf("%d",&n);
flag=1;
int x[1000]={0};
for(a=0;a<n;a++)
{
sum=0;max=-1;
for(b=0;b<n;b++)
{
scanf("%lf",&m);
if(m<0) m=m*-1;
sum=sum+m;
if(m>max)
{
max=m;
maxflag=b;
}
}
sum=sum-max;
if(sum>=max) flag=0;
if(flag!=0)
{
if(x[maxflag]!=0) flag=0;
else x[maxflag]=1;
}
}
if(flag!=0)
printf("yes\n");
else
printf("no\n");
}
}
return 0;
}
/*******************-**************************/
輸入很多 來個輸入優化吧!
#include<stdio.h>
#include<stdlib.h>
double point()
{
char cha;
double poi=0,num=1;
while(cha=getchar())
{
if(cha==' '||cha=='\n') break;
num=num/10;
poi=poi+(cha-48)*num;
}
return poi;
}
double input()
{
char cha,flag=1;
double x=0;
while(cha=getchar())
if(cha!=' '&&cha!='\n') break;
if(cha!='-')
x=x*10+cha-48;
else flag=-1;
while(cha=getchar())
{
if(cha==' '||cha=='\n') break;
if(cha=='.')
{
x=x+point();
break;
}
x=x*10+cha-48;
}
return x*flag;
}
main()
{
int t,n,maxflag;
double sum,max,m;
while(scanf("%d",&t)==1)
{
int a,b,c,flag;
while(t--)
{
scanf("%d",&n);
flag=1;
int x[1000]={0};
for(a=0;a<n;a++)
{
sum=0;max=-1;
for(b=0;b<n;b++)
{
m=input();
if(m<0) m=m*-1;
sum=sum+m;
if(m>max)
{
max=m;
maxflag=b;
}
}
sum=sum-max;
if(sum>=max) flag=0;
if(flag!=0)
{
if(x[maxflag]!=0) flag=0;
else x[maxflag]=1;
}
}
if(flag!=0)
printf("yes\n");
else
printf("no\n");
}
}
return 0;
}
上一篇:2006 NPSC B. 幼稚
下一篇:2007 NPSC E. 猜數字