讨论 / 为什么在本机能通过,在这通不过?60分
20010941 2011-08-16 22:16:00
点我顶贴 收藏 删除
#include<stdio.h>

int dx[9]={0,1,2,-1,2,-2,1,-1,-2};

int dy[9]={0,2,1,2,-1,1,-2,-2,-1};

int n,m,x,y;

long long g[22][22];

main(){

scanf("%d %d %d %d",&n,&m,&x,&y);

g[x][y]=-1;

int i,j;

long long cx,cy;

for(i=1;i<=8;i++)

{

if(x+dx[i]>=0&&x+dx[i]<=n&&y+dy[i]>=0&&y+dy[i]<=m)

g[x+dx[i]][y+dy[i]]=-1;

}

g[0][0]=1;

for(i=0;i<=n;i++)

{

for(j=0;j<=m;j++)

{

if(i==0&&j==0) continue;

if(g[i][j]==-1) continue;

if(i<1||g[i-1][j]==-1) cx=0;

else cx=g[i-1][j];

if(j<1||g[i][j-1]==-1) cy=0;

else cy=g[i][j-1];

g[i][j]=cx+cy;

}

}

printf("%lld",g[n][m]);

return 0;

}

#1 Hlog@2011-08-10 02:10:00
回复 删除
用int64啊大哥
#2 goon@2011-08-16 22:16:00
回复 删除
我也是,原数据AC这里爆60
查看更多回复
提交回复