哔!数字三角形全体集合!

数字三角形!到!

数字三角形W!到!

数字三角形WW!到!

数字三角形WWW!到!

--------------------------------------------------------------------------------------------------------------------------------------------------------

数字三角形,一个灰常灰常典型的动规题,是一道灰常灰常水的动规题,

1220 数字三角形

 时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 黄金 Gold

题目描述 Description

如图所示的数字三角形,从顶部出发,在每一结点可以选择向左走或得向右走,一直走到底层,要求找出一条路径,使路径上的值最大。

输入描述 Input Description

第一行是数塔层数N(1<=N<=100)。

第二行起,按数塔图形,有一个或多个的整数,表示该层节点的值,共有N行。

输出描述 Output Description

输出最大值。

样例输入 Sample Input

5

13

11 8

12 7 26

6 14 15 8

12 7 13 24 11

样例输出 Sample Output

86

话不多说上代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
int a[110][110]={0},n;
int main()
{cin>>n;for (int i=1;i<=n;i++)for (int j=1;j<=i;j++)cin>>a[i][j];for (int i=n-1;i>=1;--i)for (int j=1;j<=i;j++)a[i][j]=max(a[i][j]+a[i+1][j],a[i][j]+a[i+1][j+1]);cout<<a[1][1];return 0;
}--------------------------------------------------------------------------------------------------------------------------------------------------------重点说的是后三个转换型的题,我们先跳过 数字三角形W ,先来看数字三角形WW和WWW;其实这两道题也是水题,先看题目:

193 数字三角形WW

 时间限制: 1 s
 空间限制: 32000 KB
 题目等级 : 钻石 Diamond

题目描述 Description

数字三角形必须经过某一个点,使之走的路程和最大

输入描述 Input Description

第1行n,表示n行
第2到n+1行为每个的权值
程序必须经过n div 2,n div 2这个点

输出描述 Output Description

最大值

样例输入 Sample Input

2
1
1 1

样例输出 Sample Output

2

数据范围及提示 Data Size & Hint

n <=25

要求必须经过(n/2,n/2)这个点的话,那我们只需把这个点的值先加上一个较大的数,

最后只需给结果减去你给它加上的值就好了,水题直接上代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
int a[110][110]={0},n;
bool f[110][110]={0};
int main()
{cin>>n;for (int i=1;i<=n;i++)for (int j=1;j<=i;j++){cin>>a[i][j];}a[n/2][n/2]+=5000;for (int i=n-1;i>=1;--i)for (int j=1;j<=i;j++)a[i][j]=max(a[i][j]+a[i+1][j],a[i][j]+a[i+1][j+1]);cout<<a[1][1]-5000;return 0;
}

--------------------------------------------------------------------------------------------------------------------------------------------------------

2198 数字三角形WWW

 时间限制: 1 s
 空间限制: 32000 KB
 题目等级 : 钻石 Diamond

题目描述 Description

数字三角形必须经过某一个点,使之走的路程和最大

输入描述 Input Description

第1行n,表示n行 
第2到n+1行为每个的权值
第n+2行为两个数x,y表示必须经过的点

输出描述 Output Description

最大值

样例输入 Sample Input

2
1
1 1
1 1

样例输出 Sample Output

2

数据范围及提示 Data Size & Hint

n<=25

这题思路与WW一样一样滴,只是把必走的点变成了(x,y),

上代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
int a[110][110]={0},n,x,y;
bool f[110][110]={0};
int main()
{cin>>n;for (int i=1;i<=n;i++)for (int j=1;j<=i;j++)cin>>a[i][j];cin>>x>>y;a[x][y]+=5000;for (int i=n-1;i>=1;--i)for (int j=1;j<=i;j++)a[i][j]=max(a[i][j]+a[i+1][j],a[i][j]+a[i+1][j+1]);cout<<a[1][1]-5000;return 0;
}--------------------------------------------------------------------------------------------------------------------------------------------------------到了最重点的题:数字三角形W,这个题一开始我并没有想出较简单做法,后来敬爱的学哥学姐教会了我,因为毕竟我也是个蒟蒻啊...具体做法在代码中解释吧。

2189 数字三角形W

 时间限制: 1 s
 空间限制: 32000 KB
 题目等级 : 黄金 Gold

题目描述 Description

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

输入描述 Input Description

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

输出描述 Output Description

mod 100最大值

样例输入 Sample Input

2
1
99 98

样例输出 Sample Output

99

数据范围及提示 Data Size & Hint

n<=25

代码:

//我是用的倒推的思路做的,顺推其实思路一样,转换一下就好,这里只给出倒推得代码
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,a[26][26]={0};
bool f[26][26][100]={0};
int main()
{
cin>>n;
for (int i=1;i<=n;i++) //数据的读入
for (int j=1;j<=i;j++)
cin>>a[i][j];
for (int i=1;i<=n;i++) //这一步的代码是为了将最后一排的所有数存下来
f[n][i][a[n][i]]=true;
for (int i=n-1;i>=1;--i) //这里是主要过程,思路:将所有的可能性mod100都存下来,
for (int j=1;j<=i;j++)
for (int k=0;k<=99;k++)
{
if (f[i+1][j][k])
f[i][j][(k+a[i][j])%100]=true;
if (f[i+1][j+1][k])
f[i][j][(k+a[i][j])%100]=true;
}
for (int k=99;k>=0;--k) //找出所有可能性中最大的可能,输出,这个题就AC咯、
if (f[1][1][k])
{
cout<<k;
return 0;
}
}

转载于:https://www.cnblogs.com/xiaoqi7/p/5268177.html

嘟!数字三角形 W WW WWW集合!相关推荐

  1. 数字三角形W(加强版) codevs 2189

    2189 数字三角形W 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题目描述 Description 数字三角形 要求走到最后mod 100最大 输入描述 Inpu ...

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

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

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

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

  4. 数字三角形,最长上升子序列,背包模型 AcWing算法提高课 (详解)

    目录 数字三角形模型(只能向右和向下或向左和向上) AcWing 1015. 摘花生 AcWing 1018. 最低通行费(曼哈顿距离-向右和向下-求最小值-初始化) AcWing 1027. 方格取 ...

  5. 动态规划之数字三角形模型

    数字三角形模型 前言 最低通行费 方格取数 传纸条 前言 数字三角形题型的一般描述是: 给定一个共有N行的三角矩阵A,其中第t行有X列.从左上角出发,每次可以向下方或右下方走一步,最终到达底部求把经过 ...

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

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

  7. 七:动态规划-数字三角形

    问题: 数字三角形   问题描述 (图3.1-1)示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大. ●每一步可沿左斜线向下或右斜线向下走: ●1&l ...

  8. 【动态规划】数字三角形c语言

    本学期的的算法实践课的实验作业.写的不好请大家多多指教. [题目] 试设计一个算法,计算出从三角形的顶到底的一条路径,使该路径经过的数字总和最大. 数据输入: 由文件input.txt提供输入数据.文 ...

  9. n行数字组成的数字三角形详解

    问题描述: 给定一个由n行数字组成的数字三角形如下图所示.(第n行有n个数字)试设计一个算法,计算出从三角形的顶至底的一条路径, 使该路径经过的数字总和最大.对于给定的由n行数字组成的数字三角形,编程 ...

最新文章

  1. VC++、MFC最好的开源项目
  2. java set 空_Java面试总结(Map和Set)
  3. 发送结构化的网络消息
  4. 设计模式---单例模式(多线程下的单例模式)
  5. android 串口通信_使用UART与ZYBO进行通信常用外设设计方案
  6. 线段树-HDU5737-这题有点神
  7. LinkedList 的实现原理浅析
  8. 脚本实现oracle服务启停,通用服务启停shell脚本
  9. 【XCTF 攻防世界 web 练习详解系列(二)】【get_post的两种解法】
  10. ieee802.11数据radiotap介绍
  11. 本体学习的概念及目标
  12. 【渝粤教育】电大中专公共基础课程 (2)作业 题库
  13. ubuntu16.04根目录扩容
  14. mysql-connector-java-8.0.26-bin.jar 包含bin的jar下载
  15. 01 牛顿迭代公式
  16. VSCode 中怎样快速切换多个项目
  17. JDK官方下载(旧版本,以前老版本)
  18. mysql 家谱树查询_中国家谱族谱数据库可以登录、查询了
  19. python代码解释4个作用域_Python中作用域的深入讲解
  20. python 自制搜狗翻译工具

热门文章

  1. STM32利用flash读取音频数据读取与DAC播放
  2. FAQ: ggplot2常见问题
  3. 博客园出事了,博客园出事了
  4. python 发音-python 发音
  5. Minitab条形图设置基数位置、显示不同线条
  6. 访问ftp服务器文件夹,访问ftp服务器文件夹
  7. P5736 【深基7.例2】质数筛,10ms, c++最快代码
  8. findbugs 相关
  9. 11g r2 rac 11.2.0.2升级11.2.0.2.3 [PSU patch 12419353]
  10. 仿饿了么订餐外卖源码免费试用