社区讨论

P1002 60pts求助(悬赏2个关注!!!)

题目总版参与者 5已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@lo7ub11e
此快照首次捕获于
2023/10/27 07:53
2 年前
此快照最后确认于
2023/10/27 07:53
2 年前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
long long a, b, c, d, e, f = 1000000, s[1000][1000], ss[1000][1000], sum, aaaa = 1000000, ls, ls1;
int main() {
    cin >> a >> b >> c >> d;
    if(c-1>=0&&d-2>=0)
        s[c - 1][d - 2] = -1;
    if(c+1>=0&&d-2>=0)
        s[c + 1][d - 2] = -1;
    if(c+2>=0&&d-1>=0)
        s[c + 2][d - 1] = -1;
    if(c-2>=0&&d-1>=0)
        s[c - 2][d - 1] = -1;
    if(c-2>=0&&d+1>=0)
        s[c - 2][d + 1] = -1;
    if(c-1>=0&&d+2>=0)
        s[c - 1][d + 2] = -1;
    if(c+1>=0&&d+2>=0)
        s[c + 1][d + 2] = -1;
    if(c+2>=0&&d+1>=0)
        s[c + 2][d + 1] = -1;
    if(c>=0&&d>=0)
        s[c][d]=-1;
    for (int i = 1; i <= a; i++) {
        if (s[0][i] == -1) {
            break;
        }
        s[0][i] = 1;
    }
    for (int i = 1; i <= b; i++) {
        if (s[i][0] == -1) {
            break;
        }
        s[i][0] = 1;
    }
    for (int i = 1; i <= a; i++) {
        for (int j = 1; j <= b; j++) {
            if (s[i][j] != -1) {
                if (s[i - 1][j] != -1 && s[i][j - 1] != -1) {
                    s[i][j] = s[i][j - 1] + s[i - 1][j];
                }
                if (s[i - 1][j] == -1 && s[i][j - 1] != -1) {
                    s[i][j] = s[i][j - 1];
                }
                if (s[i - 1][j] != -1 && s[i][j - 1] == -1) {
                    s[i][j] = s[i - 1][j];
                }
            }
        }
    }
    cout<<s[a][b];
}

回复

5 条回复,欢迎继续交流。

正在加载回复...