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

数据范围及提示 Data Size & Hint
数字三角形
 #include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int w[][],n;
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
for(int j=;j<=i;j++)
scanf("%d",&w[i][j]);
for(int i=n-;i>=;i--)
for(int j=;j<=i;j++)
w[i][j]+=max(w[i+][j],w[i+][j+]);
printf("%d",w[][]);
return ;
}

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<cstring>
#include<cstdio>
using namespace std;
const int p=;
int w[][],n,f[][][];
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
for(int j=;j<=i;j++)
scanf("%d",&w[i][j]);
f[][][ ((w[][]%p) + p)%p ]=; for(int i=;i<=n;i++)
for(int j=;j<=i;j++)
for(int k=;k<=;k++)
f[i][j][k]=f[i-][j][( ( k-w[i][j]) %p+p ) %p ]||
f[i-][j-][( ( k-w[i][j]) %p+p ) %p ];
int maxx=;
for(int i=;i<=n;i++)
for(int j=;j>=;j--)
if(f[n][i][j]) maxx=max(maxx,j);
printf("%d",maxx);
return ;
}

说实话这道题我不知道是不是动态规划,这DP也不是我写的(可能是数据太水把我放过去了),我觉得这不满足动态规划无后效性的原则,望大神路过留言。。。

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

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int n,x,y,w[][],ko;
long long f[][];
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
for(int j=;j<=i;j++)
scanf("%d",&w[i][j]);
f[][]=w[][];
w[n/][n/]+=;
for(int i=;i<=n;i++)
for(int j=;j<=i;j++)
f[i][j]=w[i][j]+max(f[i-][j],f[i-][j-]);
long long ans=;
for(int i=;i<=n;i++)
ans=max(ans,f[n][i]);
printf("%lld",ans-);
return ;
}

这次是正推。。

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

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int n,x,y,w[][],ko;
long long f[][];
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
for(int j=;j<=i;j++)
scanf("%d",&w[i][j]);
scanf("%d%d",&x,&y);
w[x][y]+=;
f[][]=w[][];
for(int i=;i<=n;i++)
for(int j=;j<=i;j++)
f[i][j]=w[i][j]+max(f[i-][j],f[i-][j-]);
long long ans=;
for(int i=;i<=n;i++)
ans=max(ans,f[n][i]);
printf("%lld",ans-);
return ;
}

Codevs 数字三角形 问题合集的更多相关文章

  1. codevs 数字三角形集结

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

  2. Codevs 二叉树遍历问题 合集

    2010 求后序遍历 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 白银 Silver   题目描述 Description 输入一棵二叉树的先序和中序遍历序列,输出其后序遍历序列. ...

  3. codevs——T1220 数字三角形

    http://codevs.cn/problem/1043/  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Descr ...

  4. codevs 1220 数字三角形

    1220 数字三角形  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 如图所示的数字三角形,从顶部出发,在每 ...

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

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

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

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

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

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

  8. Codevs 4829 [DP]数字三角形升级版

    4829 [DP]数字三角形升级版 时间限制: 1 s 空间限制: 16000 KB 题目等级 : 黄金 Gold 题目描述 Description 从数字三角形的顶部(如图,第一行的5表示行数)到底 ...

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

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

随机推荐

  1. SQL学习总结笔记

    SQL语句的效率不仅是sql语句的设计还有一些其他的原因比如网络 .是否有视图.是否有索引等等.这里主要描述的是我个人对于sql设计方面优化的一些见解: 首先要说明一下的是数据库SQL解析顺序: (1 ...

  2. 代码方式使用AutoLayout (NSLayoutConstraint + Masonry)

    随着iPhone6/6+设备的上市,如何让手头上的APP适配多种机型多种屏幕尺寸变得尤为迫切和必要.(包括:iPhone4/4s,iPhone5/5s,iPhone6/6s,iPhone 6p/6ps ...

  3. Unity学习之路——主要类

    学习https://blog.csdn.net/VRunSoftYanlz/article/details/78881752 1.Component类gameObject:组件附加的游戏对象.组件总是 ...

  4. PHP 存储密码

    最佳实践是 $hashedPassword = password_hash('my super cool password', PASSWORD_DEFAULT); $res = password_v ...

  5. C语言程序运行

    vs2013编辑器 c程序的运行   一.启动Microsoft Visual C++  2013版.新建项目 . 1.  文件——> 新建——> 项目.       2. 确定之后 弹出 ...

  6. 初学redis,redis基本数据类型

    String: 1. set key value 2. get key 3. del key 4. strlen key 5. getset key value 修改键值对   6. getrange ...

  7. Mac brew 安装amp环境

    |首先加入Homebrew官方的几个软件源 $ brew tap homebrew/dupes $ brew tap homebrew/versions $ brew tap homebrew/php ...

  8. windows charles 抓包https请求

    charles证书     2.设置host和端口 3.浏览器访问即可抓到https的请求  

  9. ubuntu 16.04下如何打造 sublime python编程环境

    一.安装python3     ubuntu自身是安装python2的,例如在ubuntu 16.04中安装的就是python2.7.但我想在python3的环境下进行开发所以就要安装python3. ...

  10. LeetCode(217)Contains Duplicate

    题目 Given an array of integers, find if the array contains any duplicates. Your function should retur ...