- 马拦过河卒
- 2012-08-12 17:15:37 @
#include
#include
#include
#include
#include
using namespace std;
long long dp[20][20];
int x,y;
void dfs(int x1,int y1)
{
if(dp[x1][y1]>0) return ;
if(abs(x1-x)==2 && abs(y1-y)==1) return ;
if(abs(x1-x)==1 && abs(y1-y)==2) return ;
if(x1==x && y1==y) return ;
if(x1>0) dfs(x1-1,y1);
if(y1>0) dfs(x1,y1-1);
dp[x1][y1]=dp[x1-1][y1]+dp[x1][y1-1];
}
int main()
{
int a,b;
scanf("%d%d",&a,&b);
scanf("%d%d",&x,&y);
dp[0][0]=1;
dfs(a,b);
printf("%d\n",dp[a]);
return 0;
}
3 条评论
-
兴华神将 LV 8 @ 2014-05-16 15:41:40
我也想问你
-
2014-05-16 15:41:27@
#include<iostream>
#include<cstring>
using namespace std;
int f[20][20],e[20][20];
int main()
{
int a,b,c,d;
cin>>a>>b>>c>>d;
for(int i=0;i<=a;i++)
{
for(int j=0;j<=b;j++)
{
e[i][j]=1;
}
}
f[0][0]=1;
e[0][0]=0;
e[c+1][d+2]=0;
e[c+1][d-2]=0;
e[c+2][d-1]=0;
e[c+2][d+1]=0;
e[c-1][d+2]=0;
e[c-1][d-2]=0;
e[c-2][d+1]=0;
e[c-2][d-1]=0;
e[c][d]=0;
for(int i=0;i<=a;i++)
{
for(int j=0;j<=b;j++)
{
if(e[i][j]) f[i][j]=f[i-1][j]+f[i][j-1];
}
}
cout<<f[a][b];return 0;
} -
2012-08-17 11:02:04@
【猜测】你的内存和评测机能比么
P党路过
- 1