本人手算数据带入程序所有结果都符合...但
我过不了1,3,4orz
c++代码
#include<iostream>
using namespace std;
int abs(int a,int b){
if(a>b)
return a-b;
else
return b-a;
}
int f(int x,int y,int x0,int y0){
x++;
y++;
x0++;
y0++;
int a[x*y+1];
for(int i=1;i<=x*y;i++){
if(abs(i%x,x0)==1 &&abs(i/x+1,y0)==2
||abs(i%x,x0)==2 &&abs(i/x+1,y0)==1
||i==y0*x+x0-x)
a[i]=0;
else if(i==1) a[i]=1;
else if(i<=x) a[i]=a[i-1];
else if(i%x==1) a[i]=a[i-x];
else a[i]=a[i-1]+a[i-x];
}
return a[x*y];
}
int main(void){
int a,b,c,d;
scanf("%d %d %d %d",&a,&b,&c,&d);
cout<<f(b,a,d,c);
return 0;
}