hdu 2084
ps:这道题...是DP题..所以我去看了百度一些东西,才知道了什么是状态方程,状态转移方程..
做的第一个DP题,然后TLE一次。贴上TLE的代码:
#include "stdio.h"
int a[][];
int d(int i,int j,int n){
if(i==n) return a[i][j]+;
if(d(i+,j,n)>d(i+,j+,n)){
return a[i][j]+d(i+,j,n);
}
else{
return a[i][j]+d(i+,j+,n);
}
//return a[i][j]+(i==n?0:d(i+1,j,n)>?d(i+1,j+1,n));
}
int main(){
int i,j,n,C;
scanf("%d",&C);
while(C--){
scanf("%d",&n);
for(i=;i<=n;i++){
for(j=;j<=i;j++){
scanf("%d",&a[i][j]);
}
}
printf("%d\n",d(,,n)); }
return ;
}
因为重复计算得太多,超时了.
后来看了一些大神写的,可以用记忆化搜索..名字就特别有逼格..然后就写了下面这个.
建立一个d数组来存每次计算过的值,就不用重复计算了.
代码:
#include "stdio.h"
#include "string.h"
int a[][];
int d[][];
int dd(int i,int j,int n){
if(i==n) return a[i][j]+;
if(d[i][j]>=) return d[i][j];
if(dd(i+,j,n)>dd(i+,j+,n)){
return d[i][j]=a[i][j]+dd(i+,j,n);
}
else{
return d[i][j]=a[i][j]+dd(i+,j+,n);
}
}
int main(){
int C,i,j,n;
scanf("%d",&C);
while(C--){
scanf("%d",&n);
memset(d,-,sizeof(d));
for(i=;i<=n;i++){
for(j=;j<=i;j++){
scanf("%d",&a[i][j]);
}
}
printf("%d\n",dd(,,n));
}
return ;
}
果然AC了..
哦对了,刚开始做的一个,借用了网上大神的“>?"这个使用,然而在杭电里面无论是GCC还是G++都不支持这个
">?"这个是取两个的最大值,相当于max(a,b) a>?b
hdu 2084的更多相关文章
- HDU 2084 数塔 (DP)
数塔 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status Pr ...
- HDU 2084 数塔(动态规划)
数塔 http://acm.hdu.edu.cn/showproblem.php?pid=2084 Problem Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描 ...
- hdu 2084 数塔 (简单dp)
http://acm.hdu.edu.cn/showproblem.php?pid=2084 数塔 Time Limit: 1000/1000 MS (Java/Others) Memory L ...
- HDU 2084 数塔(简单DP入门)
数塔 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- HDU 2084(DP)
http://acm.hdu.edu.cn/showproblem.php?pid=2084 状态转移方程: dp[i][j] = MAX(dp[i+1][j],dp[i+1][j+1])+tower ...
- HDU 2084 DP经典例子---数塔问题
http://acm.hdu.edu.cn/showproblem.php?pid=2084 #include "iostream" #include "cstdio&q ...
- 题解报告:hdu 2084 数塔(递推dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2084 Problem Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这 ...
- HDU 2084 数塔 (动态规划DP)
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2084 题目分析:此题采用动态规划自底向上计算,如果我们要知道所走之和最大,那么最后一步肯定是走最后一排 ...
- ACM 杭电HDU 2084 数塔 [解题报告]
数塔 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...
随机推荐
- #添加图片,最多只能上传9张.md
#添加图片,最多只能上传9张.md 前端页面: ```javascript <form id="imgForm" enctype="multipart/form-d ...
- hdu 5780 gcd
题意:给定$x, n$满足$1 \leq x, n \leq 1000000$,求$\sum{(x^a-1,x^b-1)}$对$1e9+7$取模后的值,其中$1 \leq a, b \leq n$. ...
- [问题2014A02] 解答一(两次升阶法,由张钧瑞同学、董麒麟同学提供)
[问题2014A02] 解答一(两次升阶法,由张钧瑞同学.董麒麟同学提供) 将原行列式 \(|A|\) 升阶,考虑如下 \(n+1\) 阶行列式: \[|B|=\begin{vmatrix} 1 &a ...
- 解决一道leetcode算法题的曲折过程及引发的思考
写在前面 本题实际解题过程是 从 40秒 --> 24秒 -->1.5秒 --> 715ms --> 320ms --> 48ms --> 36ms --> ...
- 19.fastDFS集群理解+搭建笔记
软件架构理解 1FastDFS介绍 1.1什么是FastDFS FastDFS是用c语言编写的一款开源的分布式文件系统.FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并 ...
- WebClient上传音频文件
//WebClient上传音频文件 public string UploadVoice(string fileNamePath) { Voice model=new Voice(); string s ...
- 《BI项目笔记》多维数据集中度量值设计时的聚合函数
Microsoft SQL Server Analysis Services 提供了几种函数,用来针对包含在度量值组中的维度聚合度量值.默认情况下,度量值按每个维度进行求和.但是,通过 Aggrega ...
- 推荐10个bootstrap及其他框架的后台管理模板
相对于网站前台炫目多彩的设计,网址后台的设计模板貌似有点少,在这里推荐10个可以免费下载的~ 1.自适应超酷整站 win8风格的Bootstrap响应式网站后台管理模板-Apricot 2.boots ...
- hdu4511小明系列故事——女友的考验(ac自动机+最短路)
链接 预处理出来任意两点的距离,然后可以顺着trie树中的节点走,不能走到不合法的地方,另开一维表示走到了哪里,依次来更新. 注意判断一下起点是不是合法. #include <iostream& ...
- 使用Eclipse创建maven项目
前提:Eclipse中安装了maven插件,或者Eclipse版本在Mars以上(自集成maven) 1.new project --maven project 2.默认点击next 3.选择构建类型 ...