题目大意:给定一个数字三角形,求从 (1,1) 走到最后一行的路径和对 100 取余数的最大值。

题解:由于最优解涉及到取余数的操作,因此按照原先的状态设计并不符合最优子结构性质,即:两个最大数相加取模并不能得到一个最优解。因此将其转化为可行性问题,即:再开一个维度记录下每个位置可能的模值,最后取第 N 行最大的一个就是答案。

代码如下

#include <bits/stdc++.h>
using namespace std;
const int maxn=30;int n,ans,mp[maxn][maxn];
bool dp[maxn][maxn][100];void read_and_parse(){scanf("%d",&n);for(int i=1;i<=n;i++)for(int j=1;j<=i;j++)scanf("%d",&mp[i][j]);dp[1][1][mp[1][1]%100]=1;
}void solve(){for(int i=1;i<n;i++)for(int j=1;j<=i;j++)for(int k=0;k<100;k++)if(dp[i][j][k]){dp[i+1][j][(k+mp[i+1][j])%100]=1;dp[i+1][j+1][(k+mp[i+1][j+1])%100]=1;}for(int i=1;i<=n;i++)for(int j=0;j<100;j++)if(dp[n][i][j]&&ans<j)ans=j;printf("%d\n",ans);
}int main(){read_and_parse();solve();return 0;
}

转载于:https://www.cnblogs.com/wzj-xhjbk/p/9994205.html

【codevs2189】数字三角形+相关推荐

  1. codevs2189数字三角形(%100)

    题目:http://codevs.cn/problem/2189/ %100的话就加一维状态.把最优性改为可行性(存在性). #include<iostream> #include< ...

  2. vijos 1006 晴天小猪历险记之Hill——数字三角形的终极变化

    题目链接:https://vijos.org/p/1006 数字三角形原题看这里:http://www.cnblogs.com/huashanqingzhu/p/7326837.html 背景 在很久 ...

  3. codevs——1220 数字三角形(棋盘DP)

     时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解 题目描述 Description 如图所示的数字三角形,从顶部出发,在每一结点可以选择向左走或得向右走,一 ...

  4. 【动态规划专题】数字三角形模型

    题目 算法 AcWing 1015. 摘花生 简单线性DP.数字三角形模型 AcWing 1018. 最低通行费 数字三角形模型 AcWing 1027. 方格取数 四维DP AcWing 275. ...

  5. 最长子序列和 动态规划python_算法基础之python实现动态规划中数字三角形和最长上升子序列问题...

    数字三角形问题:python 问题描述:函数 问题分析:spa 程序代码:(递归法和动归法)code # -*- coding: utf-8 -*- """ Create ...

  6. [CODEVS] 2189 数字三角形W

    数字三角形 要求走到最后mod 100最大 可达性DP(好像是这样叫) 用bool数组f[i][j][k]表示 位置(i,j)能否得到k(mod 100意义下) 转移条件 f[i][j][k]=f[i ...

  7. 数字三角形路径最小值c语言题目,算法学习——动态规划之点数值三角形的最小路径...

    算法描述在一个n行的点数值三角形中,寻找从顶点开始每一步可沿着左斜或者右斜向下直到到达底端,使得每个点上的数值之和为最小 右图为一个4行的点数值三角形 算法思路接收用户输入行数n 使用一个二维数组a[ ...

  8. hihoCoder#1037 : 数字三角形(DP)

    [题目链接]:click here~~ 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 问题描写叙述 小Hi和小Ho在经历了螃蟹先生的任务之后被奖励了一次出国旅游的机会,于是他 ...

  9. 蓝桥杯-数字三角形 (java)

    算法训练 数字三角形 时间限制:1.0s 内存限制:256.0MB问题描述(图3.1-1)示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路径,使该路径所经过的数字的总和最大.●每一步可沿 ...

最新文章

  1. Linux基础知识:正则表达式
  2. android如何根据机顶盒区分用户,Android 上手机跟机顶盒应用开发的区别
  3. PC微信逆向:分析发送xml名片call
  4. [Socket网络编程]一个封锁操作被对 WSACancelBlockingCall 的调用中断。
  5. 创建线程安全的单例(ARC或 非ARC)
  6. 关于pygame和tkinter窗口的那件事-线程
  7. 谁知道怎么编写侧边栏的代码吗?
  8. 上计算机课玩游戏检讨400字,上网课玩游戏检讨书
  9. python remove函数_Python列表的remove方法的注意事项
  10. 安卓怎么把一个按钮设计成梯形_常闭触点输入信号处理的电路图及PLC梯形图
  11. php 可逆加密方法
  12. display函数怎么使用_使用Python写一个小游戏alien invasion!
  13. 动态拼接LINQ查询条件
  14. 《社会企业开展应聘文职人员培训规范》团体标准在新华书店上架
  15. JVM -- JVM内存结构:程序计数器、虚拟机栈、本地方法栈、堆、方法区(二)
  16. 数据结构大作业-DBLP科学文献管理系统(三)聚团分析(并查集,最大团问题)
  17. c语言break可以跳出for循环吗,怎么跳出for循环
  18. 蓝牙低功耗音频技术--目录大纲
  19. 服务器维护与管理专业好就业吗,windows server服务器配置与管理专业就业方向
  20. Python习题十三套汇总

热门文章

  1. Echarts绘制地图带标记tooltip
  2. java proguard_java混淆之proguard
  3. 免费logo创建器launchaco
  4. Android 中ScrollView垂直滚动视图之隐藏滚动条的三种方法
  5. java实现的人民币大小写转换
  6. oracle bi enterprise edition,Oracle BI Publisher 企业版在WIN7下的装配(BI Publisher Enterprise Edition)...
  7. fopen函数阻塞的排查
  8. 【图像加密】行列像素置乱+DWT图像加密【含Matlab源码 675期】
  9. pdf文件太大怎么缩小?试试这两招吧!
  10. python对列表排序