原题传送:
再错分析:
感觉错过的题哪怕自己写过博客分析,自己再写,还是漏洞百出啊!下面是二刷的错误代码,先批评下自己,变量的标识度太低了,写着写着自己都忘了这个变量代表的是什么了。
#include <bits/stdc++.h>
using namespace std;
int dp[20][20]={1};
int mx[]={0,1,1,2,2,-1,-1,-2,-2};
int my[]={0,2,-2,1,-1,2,-2,1,-1};
bool mark[20][20];
int main()
{
int b1,b2,m1,m2;
cin >> b1 >> b2 >> m1 >> m2;
int i,j;
for ( i=0; i<9; i++ )
mark[m1+mx[i]][m2+mx[i]] = 1;
for ( i=0; i<=b1; i++ )
for ( j=0; j<=b2; j++ )
{
if (i) dp[i][j] += dp[i-1][j];
if (j) dp[i][j] += dp[i][j-1];
dp[i][j] *= !mark[i][j];
}
cout << dp[b1][b2] << endl;
return 0;
}
**致命错误一:**也是