20pts+灵异事件求助
查看原帖
20pts+灵异事件求助
912241
dream_on_screen楼主2023/5/9 21:37

提交记录

#include <iostream>
using namespace std;
long long a[25][25];
int m,n;
int x,y;
int dx[9]={0,-1,-2,-1,-2,1,2,1,2},dy[9]={0,-2,-1,2,1,-2,-1,2,1};
bool safe(int i,int j)
{
    for(int k=1;k<=8;k++)
    {
        if(x+dx[k]==i&&y+dy[k]==j)
            return false;
    }
    return true;
}
int main()
{
    cin>>n>>m>>x>>y;
    a[0][0]=1;
    for(int i=0;i<=n;i++)
        for(int j=0;j<=m;j++)
        {
            if((!(i==0&&j==0))&&(!(i==x&&j==y))&&safe(i,j))
            {
                a[i][j]=a[i-1][j]+a[i][j-1];
            }
            //else
                //a[i][j]=0;
        }
    cout<<a[n][m];
}

交上去之后只有一个点对了,下了第二个测试点数据,数据是

10 10 4 4

,答案是

6802

,但是奇怪的是,我本地运行结果也是6802。

2023/5/9 21:37
加载中...