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. PAT (Basic Level) Practise (中文)- 1011. A+B和C (15)

    http://www.patest.cn/contests/pat-b-practise/1011 给定区间[-231, 231]内的3个整数A.B和C,请判断A+B是否大于C. 输入格式: 输入第1 ...

  2. VMware的centos的配置分区

    /      ext3 8189 固定大小空     swap 509  固定大小/boot  ext3 100  固定大小/home  ext3 全部(使用全部可用空间) 利用的工具   AMFTP ...

  3. 如何将oracle查询的结果传输给变量

    如何将oracle查询的结果传输给变量 1. sqlplus查询时的变量设置 set echo off; #控制start命令不列出命令文件中的每一命令 set feedback off; #显示由查 ...

  4. OC和C++的区别

    C++语言特点: 1.在C语言的基础上进行扩充和完善,使C++兼容了C语言的面向过程特点,又成为了一种面向对象的程序设计语言: 2.可以使用抽象数据类型进行基于对象的编程: 3.可以使用多继承.多态进 ...

  5. spdlog&rapidjson 使用记录

    项目中需要记录log以及读写json,对比后选择了spdlog以及rapidjson. SPDLog 对于log只是要求能够记录到文件中以及能够过滤,选择spdlog是因为这个只需要包含头文件即可使用 ...

  6. 【结构型模式】《大话设计模式》——读后感 (12)在NBA我需要翻译?——适配器模式

    适配器模式:将一个类的接口转换成客户希望的另外一个接口,Adapter模式使得原本由于接口不兼容而不能在一起工作的 那些类可以在一起工作了[DP] UML类图: 简单模拟一下代码: //已存在的.具有 ...

  7. leetcode-18-remove

    283. Move Zeroes 解题思路: 从nums[0]开始,如果是零就和它后面的第一个非零数交换,不是零就下一位.不贴代码了,比较简单. 27. Remove Element 解题思路: 这道 ...

  8. LeetCode(260) Single Number III

    题目 Given an array of numbers nums, in which exactly two elements appear only once and all the other ...

  9. Linux交换分区swap

    一.SWAP 说明 1.1 SWAP 概述 当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用.那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被 ...

  10. HDU:2255-奔小康赚大钱(KM算法模板)

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2255 奔小康赚大钱 Time Limit: 1000/1000 MS (Java/Others) Mem ...