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的更多相关文章

  1. HDU 2084 数塔 (DP)

    数塔 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Pr ...

  2. HDU 2084 数塔(动态规划)

    数塔 http://acm.hdu.edu.cn/showproblem.php?pid=2084 Problem Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描 ...

  3. hdu 2084 数塔 (简单dp)

    http://acm.hdu.edu.cn/showproblem.php?pid=2084 数塔 Time Limit: 1000/1000 MS (Java/Others)    Memory L ...

  4. HDU 2084 数塔(简单DP入门)

    数塔 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  5. 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 ...

  6. HDU 2084 DP经典例子---数塔问题

    http://acm.hdu.edu.cn/showproblem.php?pid=2084 #include "iostream" #include "cstdio&q ...

  7. 题解报告:hdu 2084 数塔(递推dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2084 Problem Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这 ...

  8. HDU 2084 数塔 (动态规划DP)

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2084 题目分析:此题采用动态规划自底向上计算,如果我们要知道所走之和最大,那么最后一步肯定是走最后一排 ...

  9. ACM 杭电HDU 2084 数塔 [解题报告]

    数塔 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...

随机推荐

  1. 关于jstl标签引入的问题

    1.源码: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> < ...

  2. [转]error: 'retainCount' is unavailable: not available in automatic reference counting mode

    转载地址:http://choijing.iteye.com/blog/1860761   后来发现是编译选项的问题:   1.点击工程名 打开编译选项 2.在编译选项中,选择Bulid Settin ...

  3. easyui filter 过滤时间段

    $.extend($.fn.datagrid.defaults.filters, { dateRange: { init: function(container, options){ var c = ...

  4. iOS 推送

    1,推送已至,点通知栏: a)若App在UIApplicationStateActive(活动)状态,调用 //接收到推送消息 - (void)application:(UIApplication * ...

  5. 【leetcode❤python】 414. Third Maximum Number

    #-*- coding: UTF-8 -*- #l1 = ['1','3','2','3','2','1','1']#l2 = sorted(sorted(set(l1),key=l1.index,r ...

  6. java初学知识点

    public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Size t=Size.LARG ...

  7. jquery总结05-常用事件02-表单事件

    表单事件 .focus()元素获得焦点时 阻止冒泡 子元素不可以 .blur() 元素失去焦点时 阻止冒泡 子元素不可以 .change() input.select.textarea值发生改变时 i ...

  8. Flex debug版本浏览器选定问题

    原来都用IE进行调试的,今天安装了火狐浏览器,结果出现调试器找不到的错误,如下图 需要做下面设置 "窗口"—>"首选参数",下图位置勾选项改为IE,问题就 ...

  9. 一些常用的html/CSS效果---小技巧

    我常用的重置样式表reset.css /*===============基础信息================*/ *{border: 0;padding: 0;margin: 0;} table ...

  10. MyBatis中#,$的用法区别

    #可以防止SQL注入 $用在一些特殊的SQL语句例如 order by ${...} , desc/asc PS:大部分用#,一些特殊情况用$