zoukankan      html  css  js  c++  java
  • 数字三角形2 (取模)

    三维数组,保存每一种可能的状态

    数字三角形2

    描述

    数字三角形
    要求走到最后mod 100最大

    输入格式

    第1行n,表示n行 <=25
    第2到n+1行为每个的权值

    输出格式

    mod 100最大值

    测试样例1

    输入



    99 98

    输出

    99
    #include <iostream> 
    #include <cstring>
    using namespace std;
    const int N = 30, MOD = 100;
    bool dp[N][N][MOD];
    int main()
    {
        ios::sync_with_stdio(false);
        int mp[N][N], n;
        while(cin >> n) {
            for (int i = 1; i <= n; ++i)
                for (int j = 1; j <= i; ++j)
                    cin >> mp[i][j];
            memset(dp, 0, sizeof dp);
            dp[1][1][mp[1][1]] = true;
            for (int i = 2; i <= n; ++i) {
                for (int j = 1; j <= i; ++j) {
                    for (int k = 0; k < MOD; ++k) {
                        if(dp[i-1][j][k]) dp[i][j][(k+mp[i][j]) % MOD] = true;
                        else if(dp[i-1][j-1][k]) dp[i][j][(k+mp[i][j]) % MOD] = true; 
                    }
                }
            }
            for (int k = MOD - 1; k >= 0; --k)
                for (int j = 1; j <= n; ++j)
                    if(dp[n][j][k]) {
                        cout << k << endl;
                        j = n, k = 0;
                    }
        }    
        
        return 0;
    }
  • 相关阅读:
    JDBC MySQL 实例之 用户管理系统
    利用JDBC连接数据库(MySQL)
    CSS01
    HTML01
    GUI编程02
    GUI编程01
    名词解释
    Navicat MySQL安装
    Eclipse安装Web/JavaEE插件、Eclipse编写HTML代码
    Pascal输出星星
  • 原文地址:https://www.cnblogs.com/qinwenjie/p/7270582.html
Copyright © 2011-2022 走看看