题意:****求从三角形顶端出发到达底部,所能够得到的最大路径和


方法一:记忆化搜索

/*************************************************************************
> File Name: euler018t2.c
> Author: WArobot
> Blog: http://www.cnblogs.com/WArobot/
> Created Time: 2017年06月28日 星期三 11时01分01秒
************************************************************************/ #include <stdio.h>
#include <inttypes.h> #define MAX_N 15 int32_t Mat[MAX_N][MAX_N];
int32_t f[MAX_N][MAX_N]; // f[x][y] 代表从点 (x,y) 到最底端的最长路径长度 int32_t DFS(int32_t x , int32_t y) { // 搜索点(x,y)下方路径中的最大值
if (x + 1 == MAX_N) return Mat[x][y];
if (f[x][y] != 0 ) return f[x][y]; // 记忆化,如果(x,y)已经求得下面路径中的最大值,则返回上次记忆的最长路径
int32_t ans1 , ans2;
ans1 = DFS(x + 1 , y) + Mat[x][y];
ans2 = DFS(x + 1 , y + 1) + Mat[x][y];
f[x][y] = ans1 > ans2 ? ans1 : ans2; // 记忆化部分
return f[x][y];
}
int32_t main() {
freopen("euler018input.txt","r",stdin);
for (int32_t i = 0 ; i < MAX_N ; i++) {
for (int32_t j = 0 ; j <= i ; j++) {
scanf("%d",&Mat[i][j]);
}
}
int32_t ret = DFS(0,0);
printf("%d\n",ret);
return 0;
}

方法二:DP

/*************************************************************************
> File Name: euler018.cpp
> Author: WArobot
> Blog: http://www.cnblogs.com/WArobot/
> Created Time: 2017年05月17日 星期三 22时21分32秒
************************************************************************/ #include<bits/stdc++.h>
using namespace std; const int MAX_N = 15;
int mat[MAX_N + 4][MAX_N + 4];
int main(){ memset(mat,0,sizeof(mat));
freopen("euler018input.txt","r",stdin);
for(int i = 0 ; i < MAX_N ; i++)
for(int j = 0 ; j <= i ; j++) scanf("%d",&mat[i][j]); printf("mat[1][1] = %d\n",mat[1][1]);
for(int i = MAX_N-1-1 ; i >= 0 ; i--){
for(int j = 0 ; j <= i ; j++){
mat[i][j] += max(mat[i+1][j] , mat[i+1][j+1]);
}
}
printf("ans = %d\n",mat[0][0]);
return 0;
}

Project Euler 18 Maximum path sum I( DP and 记忆化搜索 )的更多相关文章

  1. poj1179 区间dp(记忆化搜索写法)有巨坑!

    http://poj.org/problem?id=1179 Description Polygon is a game for one player that starts on a polygon ...

  2. 蓝桥杯历届试题 地宫取宝 dp or 记忆化搜索

    问题描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明被带到地宫的入口,国王要求他只能向右或向下行走. 走 ...

  3. 【bzoj1415】【聪聪和可可】期望dp(记忆化搜索)+最短路

    [pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=57148470 Descrition 首先很明显是 ...

  4. 二进制数(dp,记忆化搜索)

    二进制数(dp,记忆化搜索) 给定k个<=1e6的正整数x(k不大于10),问最小的,能被x整除且只由01组成的数. 首先,dp很好写.用\(f[i][j]\)表示i位01串,模ki的值是j的数 ...

  5. HDU 4597 Play Game (DP,记忆化搜索)

    Play Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total S ...

  6. 2017广东工业大学程序设计竞赛决赛 题解&源码(A,数学解方程,B,贪心博弈,C,递归,D,水,E,贪心,面试题,F,贪心,枚举,LCA,G,dp,记忆化搜索,H,思维题)

    心得: 这比赛真的是不要不要的,pending了一下午,也不知道对错,直接做过去就是了,也没有管太多! Problem A: 两只老虎 Description 来,我们先来放松下,听听儿歌,一起“唱” ...

  7. HDU 2089 不要62(数位DP&#183;记忆化搜索)

    题意  中文 最基础的数位DP  这题好像也能够直接暴力来做   令dp[i][j]表示以 j 开头的 i 位数有多少个满足条件 那么非常easy有状态转移方程 dp[i][j] = sum{ dp[ ...

  8. HDU 1208 Pascal's Travels 经典 跳格子的方案数 (dp或者记忆化搜索)

    Pascal's Travels Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Su ...

  9. kuangbin专题十二 HDU1078 FatMouse and Cheese )(dp + dfs 记忆化搜索)

    FatMouse and Cheese Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Othe ...

随机推荐

  1. myquant平台搭建及使用

    1.主页 http://myquant.cn/ 点击“我要申请试用”,进入如下页面:http://myquant.cn/news/2015/03/25/try-gmsdk-v2.0/ 点击“试用注册” ...

  2. SLES documentation

    https://www.suse.com/documentation/sles11/book_sle_admin/data/sec_basicnet_yast.html

  3. ExtJs之Ext.Model的MemoryProxy

    书上的代码已完全不可参考,只好按知识点从网上查资料一个一个实例 了. <!DOCTYPE html> <html> <head> <title>ExtJ ...

  4. iOS_网络请求_代理方式

    #pragma mark - 网络请求代理方式(异步) - (IBAction)DelegateButtonDidClicked:(UIButton *)sender { // 1.拼接 urlStr ...

  5. 关于Linux静态库和动态库的分析

    关于Linux静态库和动态库的分析 关于Linux静态库和动态库的分析 1.什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可运行代码的二进制形式.能够被操作系统加 ...

  6. HDU 5412 CRB and Queries(区间第K大 树套树 按值建树)

    题目链接:http://acm.hdu.edu.cn/showproblem.php? pid=5412 Problem Description There are N boys in CodeLan ...

  7. ScalaChina: Scala中文社区

    给大家推荐一个很常使用心的Scala中文社区 ScalaChina地址:http://scalachina.org/ 来自社区创建者的<我为什么想做ScalaChina>: http:// ...

  8. Linux 定时任务 Crontab按秒执行

    目前在crontab中最小执行时间单位为分钟. 如果需要按秒来执行,有以下两种方法: 方法一:通过sleep来实现 例: 1.创建test.php文件,这里测试通过打印时间好区分. <?php ...

  9. Blender插件之Panel

    目标 [x] 总结Blender之Panel 总结 Blender之Panel需要从Blender界面组成开始理解. 直观上Blender的界面层次为 Editors ‣ Regions ‣ (Tab ...

  10. TexturePacker贴图打包工具

    1.该软件是收费的,不过对于这么一款实用的工具来说,物有所值,下载地址 http://www.codeandweb.com/texturepacker 2.openGL载入纹理图片的时候,所用内存是会 ...