[DP]NOIP2002/FJSDFZOJ 1081 过河卒

来源:互联网 发布:软件字体看不清 编辑:程序博客网 时间:2024/06/05 17:20


原题:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1081


时间:2014.1.24


类型:dp 递推


源码:非完美版(不支持20,20的极限数据)

#include<iostream>#include<cstring>using namespace std;long long a[20][20];int main(){int n,m,x,y;cin>>n>>m>>x>>y;memset(a,-1,sizeof(a));if(x-1>=0&&y-2>=0) { a[x-1][y-2]=0;}if(x-2>=0&&y-1>=0) { a[x-2][y-1]=0;}if(x-2>=0&&y+1<=m) { a[x-2][y+1]=0;}if(x-1>=0&&y+2<=m) { a[x-1][y+2]=0;}if(x+1<=n&&y+2<=m) { a[x+1][y+2]=0;}if(x+2<=n&&y+1<=m) { a[x+2][y+1]=0;}if(x+2<=n&&y-1>=0) { a[x+2][y-1]=0;}if(x+1<=n&&y-2>=0) { a[x+1][y-2]=0;}a[x][y]=0;for(int i=0;i<=n;i++){if(a[i][0]==-1) { a[i][0]=1; }if(a[i][0]==0){for(int j=i;j<=n;j++){a[j][0]=0;}}}for(int i=0;i<=m;i++){if(a[0][i]==-1) { a[0][i]=1; }if(a[0][i]==0){for(int j=i;j<=m;j++){a[0][j]=0;}break;}}for(int j=1;j<=m;j++){for(int i=1;i<=n;i++){if(a[i][j]==-1){a[i][j]=0;a[i][j]+=a[i-1][j]+a[i][j-1];}}}cout<<a[n][m];//system("pause");return 0;}

最后状态:VIJOS AC 福建师大附中OJ WA 17%


总结:经典,经典!

0 0
原创粉丝点击