牛客小白月赛28 I

迷宫

https://ac.nowcoder.com/acm/contest/7412/I

分析

因为一个节点 只有可能从 转移过来。考虑枚举余数,那么令 表示在节点 数字 是否可以表达。那么答案为

代码

#include<bits/stdc++.h>
using namespace std;
int read() {
    int x = 0,f = 0;char ch = getchar();
    while(!isdigit(ch)) {if(ch == '-') f = 1;ch = getchar();}
    while(isdigit(ch)) {x = x*10 + ch - '0';ch = getchar();}
    return f?-x:x;
}
const int N = 110,mod = 1e4 + 7;
int n,m,val[N][N];
bool f[N][N][11000];
signed main() {
    n = read();m = read();
    for(int i = 1;i <= n;i++) {
        for(int j = 1;j <= m;j++) {
            val[i][j] = read()%mod;
        }
    }
    f[1][1][val[1][1]] = 1;
    for(int i = 1;i <= n;i++) {
        for(int j = 1;j <= m;j++) {
            if(i == 1 && j == 1) continue;
            for(int k = 0;k < mod;k++) {
                f[i][j][(val[i][j]+k)%mod] |= f[i-1][j][k];
                f[i][j][(val[i][j]+k)%mod] |= f[i][j-1][k];
            }
        }
    }
    int ans = 0;
    for(int k = 0;k < mod;k++) {
        if(f[n][m][k]) ans = ans + 1;
    }
    cout << ans << endl;
    return 0;
}
比赛题解 文章被收录于专栏

近期比赛的题解应该有吧。。。

全部评论

相关推荐

11-26 22:34
已编辑
重庆邮电大学 Java
快手 客户端开发 (n+5)k*16 公积金12
点赞 评论 收藏
分享
沉淀一会:1.同学你面试评价不错,概率很大,请耐心等待; 2.你的排名比较靠前,不要担心,耐心等待; 3.问题不大,正在审批,不要着急签其他公司,等等我们! 4.预计9月中下旬,安心过节; 5.下周会有结果,请耐心等待下; 6.可能国庆节前后,一有结果我马上通知你; 7.预计10月中旬,再坚持一下; 8.正在走流程,就这两天了; 9.同学,结果我也不知道,你如果查到了也告诉我一声; 10.同学你出线不明朗,建议签其他公司保底! 11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
6 1 评论
分享
牛客网
牛客企业服务