我用的int64的 外加数组开了2000····················还是错了
Unaccepted
测评机: Xeost[5]
得分: 60分
提交日期: 2010-8-22 23:44:00
有效耗时: 1453毫秒
测试结果1: 通过本测试点|有效耗时407ms
测试结果2: 通过本测试点|有效耗时281ms
测试结果3: 测试结果错误.错误结果为:642789722
正确结果应为:56477364570
测试结果4: 测试结果错误.错误结果为:-2091005866
正确结果应为:2203961430
测试结果5: 通过本测试点|有效耗时203ms
测试结果6: 通过本测试点|有效耗时203ms
测试结果7: 通过本测试点|有效耗时187ms
测试结果8: 测试结果错误.错误结果为:642789722
正确结果应为:56477364570
测试结果9: 测试结果错误.错误结果为:-2091005866
正确结果应为:2203961430
测试结果10: 通过本测试点|有效耗时172ms
提交代码:
#include <iostream>
#include <stdio.h>
using namespace std;
__int64 n,m,x,y,a[2002][2002],f[2002][2002];
__int64 t=0;
int zo(int i,int j)
{
if(i==n&&j==m) return 1;
if(i>n||j>m) return 0;
if(a[i][j]==1) f[i][j]=0;
if(f[i][j]==-1)
f[i][j]=zo(i+1,j)+zo(i,j+1);
return f[i][j];
}
int main()
{
memset(f,-1,sizeof(f));
memset(a,0,sizeof(a));
cin>>n>>m>>x>>y;
a[x][y]=1;
a[x-1][y-2]=1;
a[x-1][y+2]=1;
a[x-2][y-1]=1;
a[x-2][y+1]=1;
a[x+1][y-2]=1;
a[x+1][y+2]=1;
a[x+2][y-1]=1;
a[x+2][y+1]=1;
t=zo(0,0);
printf("%I64d",t);
}
正确结果应为:56477364570
和我一样,我用unsigned int 80分