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

数字三角形!到!

数字三角形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

话不多说上代码:

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<algorithm>
  4. #include<cmath>
  5. using namespace std;
  6. int a[110][110]={0},n;
  7. int main()
  8. {
  9. cin>>n;
  10. for (int i=1;i<=n;i++)
  11. for (int j=1;j<=i;j++)
  12. cin>>a[i][j];
  13. for (int i=n-1;i>=1;--i)
  14. for (int j=1;j<=i;j++)
  15. a[i][j]=max(a[i][j]+a[i+1][j],a[i][j]+a[i+1][j+1]);
  16. cout<<a[1][1];
  17. return 0;
  18. }
    --------------------------------------------------------------------------------------------------------------------------------------------------------
    重点说的是后三个转换型的题,我们先跳过 数字三角形W ,先来看数字三角形WWWWW
    其实这两道题也是水题,先看题目:

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)这个点的话,那我们只需把这个点的值先加上一个较大的数,

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

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<algorithm>
  4. #include<cmath>
  5. using namespace std;
  6. int a[110][110]={0},n;
  7. bool f[110][110]={0};
  8. int main()
  9. {
  10. cin>>n;
  11. for (int i=1;i<=n;i++)
  12. for (int j=1;j<=i;j++)
  13. {
  14. cin>>a[i][j];
  15. }
  16. a[n/2][n/2]+=5000;
  17. for (int i=n-1;i>=1;--i)
  18. for (int j=1;j<=i;j++)
  19. a[i][j]=max(a[i][j]+a[i+1][j],a[i][j]+a[i+1][j+1]);
  20. cout<<a[1][1]-5000;
  21. return 0;
  22. }

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

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),

上代码:

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<algorithm>
  4. #include<cmath>
  5. using namespace std;
  6. int a[110][110]={0},n,x,y;
  7. bool f[110][110]={0};
  8. int main()
  9. {
  10. cin>>n;
  11. for (int i=1;i<=n;i++)
  12. for (int j=1;j<=i;j++)
  13. cin>>a[i][j];
  14. cin>>x>>y;
  15. a[x][y]+=5000;
  16. for (int i=n-1;i>=1;--i)
  17. for (int j=1;j<=i;j++)
  18. a[i][j]=max(a[i][j]+a[i+1][j],a[i][j]+a[i+1][j+1]);
  19. cout<<a[1][1]-5000;
  20. return 0;
  21. }
    --------------------------------------------------------------------------------------------------------------------------------------------------------
    到了最重点的题:数字三角形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;
}
}

嘟!数字三角形 W WW WWW集合!的更多相关文章

  1. 93.数字三角形W(深搜)

    2189 数字三角形W  时间限制: 1 s  空间限制: 32000 KB  题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 数字三角形 要求走到最后mod 10 ...

  2. 2189 数字三角形W

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

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

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

  4. 数字三角形W

    题目描述 Description 数字三角形 要求走到最后mod 100最大 输入描述 Input Description 第1行n,表示n行 第2到n+1行为每个的权值 输出描述 Output De ...

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

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

  6. codevs2189数字三角形w——最优性转化

    题目:http://codevs.cn/problem/2189/ 通过增加一维,将最优性转化为可行性. 代码如下: #include<iostream> #include<cstd ...

  7. Codevs 数字三角形 问题合集

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

  8. codevs 数字三角形集结

    添在前面的一句话:初学DP,若有错误,请指出,不能误人子弟,欢迎大家提出意见.水平不高,博客写的比较粗糙,代码也挺丑,请见谅. 最原始的数字三角形: 1220 数字三角形  时间限制: 1 s  空间 ...

  9. [CODEVS] 2193 数字三角形WW

    数字三角形必须经过某一个点,使之走的路程和最大 从必须经过的点,向上向下分别DP两次的和即为答案. 还有一种思路是把和必须经过点同一行的设为-INF,这样就一定(大概)不会选择它们了. //Write ...

随机推荐

  1. Yii widget使用

    关于widgets,他们在yii中的关系如下 system.web.widgets 系统自带最基本的widget zii.widgets 是基本扩展 zii.widgets.grid 是基本扩展的重要 ...

  2. curl post传递json数据

    有时想在命令行使用post http提交一个表单,比较常用的是POST模式和GET模式 GET模式什么option都不用,只需要把变量写在url里面就可以了 比如:curl http://www.wa ...

  3. Vi的几种退出方式

    1.q 退出 2.w 保存,继续操作 3.wq 保存退出 4.q! 不保存,放弃修改 5.x 同wq相似,但又有区别 wq   强制性写入文件并退出.即使文件没有被修改也强制写入,并更新文件的修改时间 ...

  4. weblogic重置密码

    1.备份DefaultAuthenticatorInit.ldift文件 cd /app/weblogic_cs/Oracle/Middleware/user_projects/domains/ntf ...

  5. N-Queens II——Leetcode

    Follow up for N-Queens problem. Now, instead outputting board configurations, return the total numbe ...

  6. Binary Tree Inorder Traversal ——LeetCode

    Given a binary tree, return the inorder traversal of its nodes' values. For example:Given binary tre ...

  7. android实现图片识别的几种方法

    实现android图像识别的几种方法 点击这里下载第一种代码 最近完成了毕业设计,论文名为基于图像识别的移动人口管理系统.编写过程中学到了几种图像识别的技术,先写下来与大家分享. 第一种,直接使用免费 ...

  8. MYSQL 体系结构图-log (踏雪无痕) (UC技术博客)

    http://www.cnblogs.com/chenpingzhao/category/690116.html http://www.cnblogs.com/chenpingzhao/p/51074 ...

  9. Struts2 Spring hibernate 整合示例 .

    示例工具:MyEclipse 8.5.Tomcat 6.0.MySql 步骤: 1.创建一个WEB工程,命名为BookShop(名字自己取,此处为示例工程名): 2.导入struts2的核心jar包, ...

  10. NSString截取文件名(很笨的方法)

    对NSString的操作不熟悉,目前采用以下方法取得路径中的文件名以及文件夹路径 NSString* test=[[NSString alloc]initWithFormat:@"D:\\c ...