HDU 2084 数塔

C++ 工程实践(9):数据抽象 陈硕 (giantchen_AT_gmail)http://blog.youkuaiyun.com/Solstice  http://weibo.com/giantchen陈硕关于 C++ 工程实践的系列文章: http://blog.youkuaiyun.com/Solstice/category/8 阅读详情

传送门

数塔dp。
和那种网格dp差不多,也可以有四种做法,不过数塔的终点有n个,如果要让dp[i][j]表示起点到当前点的子问题,最后还要枚举。
所以这道题就让dp[i][j]表示当前点(第i行第j个)到终点(最后一行)的子问题的最优解。然后就有两种写法,递推的话只用一个数组就够了(因为访问的之前状态一定已经被计算过了),而递归的话需要一个标记(以判断这个子问题是否被计算过),所以要用两个数组。

递推:


#include <cstdio>
#include <iostream>
#include <algorithm>
#include <vector>
#include <cstring>
#include <string>
#include <queue>
using namespace std;

int dp[101][101];
int N, T;

void init() {}

int main()
{
	scanf("%d", &T);
	for (; T--;)
	{
		scanf("%d", &N);
		init();
		for (int i = 1; i <= N; i++)
			for (int j = 1; j <= i; j++)
				scanf("%d", &dp[i][j]);

		for (int i = N - 1; i >= 1; i--)
			for (int j = 1; j <= i; j++)
				dp[i][j] += max(dp[i + 1][j], dp[i + 1][j + 1]);

		printf("%d\n", dp[1][1]);
	}

	return 0;
}

递归:


#include <cstdio>
#include <iostream>
#include <algorithm>
#include <vector>
#include <cstring>
#include <string>
#include <queue>
using namespace std;

const int INF = 1e9;
int a[101][101];
int dp[101][101];
int N, T;

void init() 
{
	for (int i = 1; i <= N; i++)
		for (int j = 1; j <= i; j++)
			dp[i][j] = -INF;
}

int dfs(int i, int j)
{
	if (i == N) return a[i][j];
	if (dp[i][j] != -INF) return dp[i][j];

	int t = max(dfs(i + 1, j), dfs(i + 1, j + 1));
	return dp[i][j] = t + a[i][j];
}

int main()
{
	scanf("%d", &T);
	for (; T--;)
	{
		scanf("%d", &N);
		init();
		for (int i = 1; i <= N; i++)
			for (int j = 1; j <= i; j++)
				scanf("%d", &a[i][j]);

		printf("%d\n", dfs(1, 1));
	}

	return 0;
}
【乐企文件生成工程】关于乐企文件生成工程的详细介绍 发票文件生成方式有两种思路:1、根据已有的OFD模板,动态替换ofd模板内容;之后将ofd转pdf(局限:单行问题不大)详情可以在此处了解2、根据html模板动态占位:该工程就是这种方式 ,目前效果良好,可看下图。拿去即用的源码!无任何保留,当然也并不是所有票种都支持(时间有限、精力有限、已经连着转了,要冒烟了…) 阅读详情

相关推荐

机场数据治理系列介绍(1):机场行业数据中台中的数据管理顶层设计方案

民航机场行业的数据中台中,有关数据管理顶层设计方案需要结合机场行业的业务特点和技术需求进行具体的设计,今日我们简要考量设计提供一个参考方案:

机场信息系统研究员的专栏 1604

HDU | 2084 数塔【动态规划】

动态规划 专题 HDU 2084 数塔 题目描述 输入输出样例 时空限制 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) 思路 简单的动态规划问题。找到递推式即可。 它是从倒数第二行往上开始递推的,每个数都等于它自己加上 正下方 和 斜右方 两者取最大值。 dp[j-1]...

Wonz 683

不同比例尺地质数据共享

包含20w、25w、100w、250w比例尺地质数据共享。

sinat_38828898的博客 2308

hdu 2084 数塔

hdu  2084  数塔                  题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2084 DP 水 题目分析:经典数字三角形,前面做过一道poj1163,完全一样。 code: #include main() { int i,j,t,n,a[105][105]; scanf("%d",&t); while(t

slicer的技术交流栈 650

excel 利用SUBTOTAL函数计算筛选后数列总和、均值、最大、最小值

表里有三个人,咱们需要筛选出三个人,并分别计算他们的总和值。 先看一下数据范围(A1:B27) 通过筛选找张三。 按照上图所示输入函数,选择9,求和。 然后按照函数输入即可。 就能计算出结果。 筛选项选择王五,就会自动计算王五的总和。 筛选到李四就会自动计算李四的总和。 如果把9改成1,就是自动计算筛选出来的均值结果,如下图所示。 如果改成4就是取筛选项的最大值,选择5就是取最小值。 ...

yuanYW7556的博客 3万+

npm报错 npm WARN deprecated....的问题解决方式

报错 :npm WARN deprecated … 现象:无法进行有效的vue项目的部署以及npm install 命令的执行。 原因一:版本问题 说明:由于npm的版本过低或者过高导致的报错 检查版本: npm -v 如果版本是比较旧的,或者是最新的,这里可以进行对npm的更新和回退。 更新npm版本: npm updated -d 查看可以更新的版本 npm install -g npm 默认安装最新版本 安装回退指定的版本: npm updated -d 查看所有的版本 npm -g i.

任聪聪的博客 16万+

HDU-2084 数塔

HDU-2084 数塔 题目链接:添加链接描述 #include<bits/stdc++.h> using namespace std; int main() { int C,N,i,j; int a[101][101],dp[101][101]; cin>>C; while(C--){ cin>>N; memset(dp,0,sizeof(dp)); fo

qq_55788088的博客 142

14 Prompt 的边界:什么时候必须用 RAG 或微调

Prompt 不是万能解法。本文用“改输入、补知识、改模型”这条主线,讲清什么时候继续优化 Prompt,什么时候必须引入 RAG、工具调用或微调,帮助你避免用重技术掩盖轻问题。

老于的笔记的专栏 209

HDU2084 数塔(DP)

HDU2084 数塔(DP) HDU2084 数塔DP 题意 思路 AC代码 原题地址:http://acm.hdu.edu.cn/showproblem.php?pid=2084 题意 中文自己看 思路 一道经典DP题型,基本思路是从下自上的进行选取最大的数。 例如从n-1行开始,判断每一个数的左右孩子哪一个大就和哪一个相加。 AC代码 imp...

HuiSeKongHuan的博客 330

IDM 的免费替代品来了!这款开源下载器速度提升500%

💡分享一款开源的下载管理工具,支持多线程加速(最高提升500%)、队列管理、计划任务和浏览器集成,界面现代化且支持深色模式,跨平台支持Windows/Linux,是IDM的优秀替代方案🎈

XiaoqiangClub的博客 730

使用 MATLAB/Simulink + Simscape Electrical,构建一个含光伏并网系统与SVG的联合仿真模型,实现动态无功补偿与电压支撑

摘要:本文详细介绍了基于Simulink的SVG与光伏并网逆变器联合系统建模方法。通过构建包含光伏单元、SVG主电路和控制模块的仿真模型,实现动态无功补偿与电压稳定。重点阐述了ip-iq无功检测算法、双闭环控制和SVPWM调制等关键技术。仿真结果表明,该系统能快速响应无功需求,在10ms内将功率因数提升至0.98以上,有效抑制电压波动。文章为新能源并网系统中的电能质量治理提供了实用解决方案,并提出了进一步优化方向。

xiaoheshang_123的博客 322

hdu 2084 java 数塔 动态规划

在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的:有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?已经告诉你了,这是个DP的题目,你能AC吗? Input输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1 &lt;= N &lt;= 100),表示数塔的高度,接下来用N行数字表示数塔,其中第i行有...

lyd99的博客 521

异步处理优化:多线程线程池与消息队列的选择与应用

本文讨论了两种常见的异步处理方式:多线程线程池和消息队列(MQ)。通过将非核心逻辑异步化,可以提升系统的性能和响应速度。多线程线程池适用于本地并发任务,适合需要快速响应的场景,但无法处理跨服务任务。消息队列则适用于分布式系统,能够解耦服务并保证任务的可靠性和顺序性,适合处理高并发和高可靠性要求的任务。文章提供了实际代码示例,帮助开发者根据业务需求选择合适的异步处理方式。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 170万+

HDU2084 数塔问题 简单线性规划

HDU2084 数塔问题 简单线性规划 题目来源:http://acm.hdu.edu.cn/webcontest/contest_showproblem.php?pid=1003&ojid=0&cid=13029&hide=0 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点...

qq_fairy橙 的博客 311

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

HDU-2084 数塔(简单DP入门)

题目地址  http://acm.hdu.edu.cn/showproblem.php?pid=2084 如果熟悉回溯法,可能会立刻发现这是一个动态规划的决策问题:每次有两种选择——左下或右下。如果用回溯法求出所有可能路线,就可以从中选出最优路线。但是,回溯法效率太低:一个n层的数字三角形的完整路线有2^n-1条,当n很大时,回溯法让人SXBK。 于是,晴天霹雳一声响,DP开始入门了!首先,列

董柏顺の博客 740

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

A - 数塔 HDU - 2084

A - 数塔 HDU - 2084 题解:来复习dp了,去年暑假培训的忘的差不多了,dp是一种思想,没有具体模版,我这种脑袋不灵活的人,就只能做题理解,一边做一边理解。数塔这个题,是从后面往前面推,把fo里面的 I,J 循环带进去,模拟,就能明白了。#include&lt;iostream&gt; #include&lt;algorithm&gt; using namespace std; int...

memory_qianxiao的博客 450

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

HDU 2084 数塔 --- 入门DP

HDU 2084 数塔 从下往上递推,状态转移方程 dp[i][j] = max( dp[i+1][j], dp[i+1][j+1]) + a[i][j]; /* HDU 2084 数塔 --- 入门DP */ #include <cstdio> const int N = 105; int dp[N][N]; int MAX(int a, int b){ ...

weixin_30609331的博客 116

hdu2084数塔问题

题目描述:v/:* {behavior:url(#default#VML);}o/:* {behavior:url(#default#VML);}w/:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);} Normal 0 7.8 磅 0 2

javase7的专栏 1411

hdu2084 数塔

题目地址 hdu2084 解题思路 简单的dp 转移方程为 dp[i][j] = max(dp[i-1][j-1], dp[i-1][j]) AC代码 #include <iostream> #include <cstring> using namespace std; int dp[110][110]; int main() { int t; cin &gt...

qq_43227036的博客 148

HDU2084 数塔

Problem Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少? 已经告诉你了,这是个DP的题目,你能AC吗?   Input 输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1

王川的私房菜 940

HDU - 2084 数塔 【DP】

在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少? 已经告诉你了,这是个DP的题目,你能AC吗? Input 输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1 <= N <= 100),表示数塔的高度,接下来用N行数字表示数塔,其...

一定要站在自己热爱的生活里闪闪发光 3万+

hdu2084数塔

1.题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2084   2.参考代码:   #include #include #include using namespace std; int main() { int t,n,i,j; int map[101][101]; memset(map,0,sizeof

持续学习,刻意练习 746
上一篇: HDU 2571 命运
下一篇: HDU 1176 免费馅饼
Crossing over
博客等级 码龄10年 6粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值