零基础OI蒟蒻求助

回复帖子

@PrefixAMS 2020-09-11 19:06 回复
#include<bits/stdc++.h>
using namespace std;
int n,m,a,b;
int too[2][2]={0,-1,-1,0};
long long f[100][100],mp[100][100];
int main() {
    cin>>n>>m>>a>>b;
    a+=1;
    b+=1;
    mp[a][b]++;
    mp[a-2][b-1]++;
    mp[a-2][b+1]++;
    mp[a+2][b-1]++;
    mp[a+2][b+1]++;
    mp[a-1][b+2]++;
    mp[a-1][b-2]++;
    mp[a+1][b-2]++;
    mp[a+1][b+2]++;
    f[1][1]=1;
    for(int i=1;i<=n+1;i++) {
        for(int j=1;j<=m+1;j++) {
            if(mp[i][j]) continue;
            f[i][j]+=f[i-1][j]+f[i][j-1];
        }
    }
    cout<<f[n+1][m+1];
    return 0;
}

input 3 3 6 6

output 6

我的输出 0?

@Return_ 2020-09-11 19:22 回复 举报

它求的是mp[n][m],您输出mp[n+1][m+1],当然是0啦/kel

解决方案

输出语句,mp[n+1][m+1]改成mp[n][m]即可

上代码
#include<bits/stdc++.h>
using namespace std;
int n,m,a,b;
int too[2][2]={0,-1,-1,0};
long long f[100][100],mp[100][100];
int main() {
    cin>>n>>m>>a>>b;
    a+=1;
    b+=1;
    mp[a][b]++;
    mp[a-2][b-1]++;
    mp[a-2][b+1]++;
    mp[a+2][b-1]++;
    mp[a+2][b+1]++;
    mp[a-1][b+2]++;
    mp[a-1][b-2]++;
    mp[a+1][b-2]++;
    mp[a+1][b+2]++;
    f[1][1]=1;
    for(int i=1;i<=n;i++) {
        for(int j=1;j<=m;j++) {
            if(mp[i][j]) continue;
            f[i][j]+=f[i-1][j]+f[i][j-1];
        }
    }
    cout<<f[n][m];
    return 0;
}
反馈
如果你认为某个帖子有问题,欢迎向洛谷反馈,以帮助更多的同学。



请具体说明理由,以增加反馈的可信度。