信息
- ID
- 659
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 2
- 标签
- 递交数
- 91
- 已通过
- 54
- 上传者
一道比较入门的dp题.
答案可能很大,所以记得开 long long
.
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
const int fx[9] = {0, -2, -1, 1, 2, 2, 1, -1, -2};
const int fy[9] = {0, 1, 2, 2, 1, -1, -2, -2, -1};
int bx, by, mx, my;
long long f[40][40];
bool s[40][40];
int main()
{
scanf("%d%d%d%d",&bx,&by,&mx,&my);
bx=bx+2;
by=by+2;
mx=mx+2;
my=my+2;
f[2][1]=1;
s[mx][my]=1;
for(int i=1;i<=8;i=i+1)s[mx+fx[i]][my+fy[i]]=1;
for(int i=2;i<=bx;i=i+1)
{
for(int j=2;j<=by;j=j+1)
{
if(s[i][j]) continue;
f[i][j]=f[i-1][j]+f[i][j-1];
}
}
printf("%lld\n", f[bx][by]);
return 0;
}
“入门”