杭电acm 2049 怎么回事,两差不多的代码怎么就一个AC,一个WA
这是AC的代码#include<stdio.h>intmain(){inti,m,n;__int64a[21][2]={{1,0},{1,0},{2,1},{6,2}};...
这是AC的代码
#include <stdio.h>
int main()
{
int i,m,n;
__int64 a[21][2]={{1,0},{1,0},{2,1},{6,2}};
for(i=4;i<21;i++)
{
a[i][0]=i*a[i-1][0];
a[i][1]=(i-1)*(a[i-1][1]+a[i-2][1]);
}
scanf("%d",&i);
while(i--&&scanf("%d%d",&n,&m))
{
printf("%I64d\n",a[n][0]/a[m][0]/a[n-m][0]*a[m][1]);
}
return 0;
}
这是WA的
#include<stdio.h>
int main()
{
int t;
int n,m,i;
long long d[22],c[22];
d[1]=0;d[2]=1;
c[1]=1;c[2]=2;c[3]=6;
for(i=3;i<21;i++)
d[i]=(i-1)*(d[i-1]+d[i-2]);
for(i=4;i<21;i++)
c[i]=i*c[i-1];
scanf("%d",&t);
while(t--&&scanf("%d %d",&n,&m))
{
printf("%lld\n",c[n]/c[m]/c[n-m]*d[m]);
}
return 0;
}
测试了许多数据,输出都是一样的
但是如题
求解答???
AC就是accept
WA就是wrong answer 展开
#include <stdio.h>
int main()
{
int i,m,n;
__int64 a[21][2]={{1,0},{1,0},{2,1},{6,2}};
for(i=4;i<21;i++)
{
a[i][0]=i*a[i-1][0];
a[i][1]=(i-1)*(a[i-1][1]+a[i-2][1]);
}
scanf("%d",&i);
while(i--&&scanf("%d%d",&n,&m))
{
printf("%I64d\n",a[n][0]/a[m][0]/a[n-m][0]*a[m][1]);
}
return 0;
}
这是WA的
#include<stdio.h>
int main()
{
int t;
int n,m,i;
long long d[22],c[22];
d[1]=0;d[2]=1;
c[1]=1;c[2]=2;c[3]=6;
for(i=3;i<21;i++)
d[i]=(i-1)*(d[i-1]+d[i-2]);
for(i=4;i<21;i++)
c[i]=i*c[i-1];
scanf("%d",&t);
while(t--&&scanf("%d %d",&n,&m))
{
printf("%lld\n",c[n]/c[m]/c[n-m]*d[m]);
}
return 0;
}
测试了许多数据,输出都是一样的
但是如题
求解答???
AC就是accept
WA就是wrong answer 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询