hdu2067 简单dp或者记忆化搜索
题意:
小兔的棋盘
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 6193 Accepted Submission(s): 3373
思路:
简单dp, 因为是求最短,所以当前状态只能由上面或者左面过来(上半部分三角形),由于不能过对角线,我们可以只求一半,也就是上面三角形,最后乘2就行了,直接dp打表,或者记忆化搜索,对于记忆化搜索也可以1边记忆化搜索打表,就是最后在转换矩阵,终点变成了起点,起点变终点什么的,不难,我下面的是dp打表,和直接记忆化搜索的代码,记忆化搜索打表的没写,想写的直接在记忆或搜索的那个改改就行了。
dp
#include<stdio.h> #include<string.h> __int64 dp[40][40] = {0};void solve(int n) {dp[1][1] = 1;for(int i = 1 ;i <= n ;i ++)for(int j = i ;j <= n ;j ++){ if(i == 1 && j == 1) continue;dp[i][j] = dp[i][j-1] + dp[i-1][j];} }int main () {int n ,cas = 1;solve(36);while(~scanf("%d" ,&n) && n != -1){printf("%d %d %I64d\n" ,cas ++ ,n ,dp[n+1][n+1] * 2);}return 0; }
记忆化搜索
#include<stdio.h> #include<string.h> int mark[40][40]; __int64 dp[40][40]; int n;__int64 DFS(int x ,int y) {if(x == n + 1 && y == n + 1) return 1;if(mark[x][y]) return dp[x][y];__int64 sum = 0;if(x + 1 <= n + 1 && x + 1 <= y)sum += DFS(x + 1 ,y);if(y + 1 <= n + 1)sum += DFS(x ,y + 1);mark[x][y] = 1;dp[x][y] = sum;return sum; }int main () {memset(mark ,0 ,sizeof(mark));int cas = 1;while(scanf("%d" ,&n) && n != -1){memset(mark ,0 ,sizeof(mark));printf("%d %d %I64d\n" ,cas ++ ,n ,DFS(1 ,1) * 2);}return 0; }
hdu2067 简单dp或者记忆化搜索相关推荐
- PAT甲级1106 Lowest Price in Supply Chain:[C++题解]树、结点到根结点的距离、树形dp、记忆化搜索
文章目录 题目分析 题目链接 题目分析 来源:acwing 分析:这道题是第三次做了. 和PAT甲级1079 Total Sales of Supply Chain:[C++题解] 树.结点到根结点的 ...
- 蓝桥杯历届试题 地宫取宝 dp or 记忆化搜索
问题描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明被带到地宫的入口,国王要求他只能向右或向下行走. 走 ...
- 51Nod-1284 2 3 5 7的倍数【数位DP+记忆化搜索】
1284 2 3 5 7的倍数 给出一个数N,求1至N中,有多少个数不是2 3 5 7的倍数. 例如N = 10,只有1不是2 3 5 7的倍数. Input 输入1个数N(1 <= N &l ...
- 51Nod-1009 数字1的数量【数位DP+记忆化搜索】
1009 数字1的数量 给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数. 例如:n = 12,包含了5个1.1,10,12共包含3个1,11包含2个1,总共5个1. ...
- 【AcWing】数位统计DP、树形DP、状态压缩DP、记忆化搜索
[AcWing]数位统计DP.树形DP.状态压缩DP.记忆化搜索 一.数位统计DP 二.状态压缩DP 三.树形DP 四.记忆化搜索 一.数位统计DP 计数问题 给定两个整数 a 和 b,求 a 和 b ...
- UVA437 巴比伦塔 The Tower of Babylon(矩形嵌套进阶版、DAG上DP、记忆化搜索)
整理的算法模板合集: ACM模板 本题和基础的矩形覆盖差不多,只不过变成了三维的长方形. 因为每次转移的时候只有顶面的x和y会影响决策的进行,所以我们只需要用一个二元组(a,b)(a, b)(a,b) ...
- PAT甲级1079 Total Sales of Supply Chain:[C++题解] 树、结点到根结点的距离、树形dp、记忆化搜索
文章目录 题目分析 题目链接 题目分析 来源:acwing 分析:下图是对样例的模拟图示,题目就是统计叶子结点卖出去的钱数.根据下图,我们第一步是建树,第二步是统计叶子结点到根结点的距离,然后才能知道 ...
- HDU2089 不要62【数位DP+记忆化搜索】
不要62 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- Discovering Gold LightOJ - 1030[概率dp或者记忆化搜索]
题目大意:有一个[1,n][1,n][1,n]的数轴,数轴上的每个对应位置上都有金矿,你初始位置是1,然后你每次都会投色子决定你下一步跳到哪里,如果你跳出了nnn,那么你就要重新投.问你跳到nnn的时 ...
最新文章
- APUE(第八章)进程控制
- Linux宏定义屏蔽打印信息,宏定义实现调试信息的打印
- Linux按照CPU、内存、磁盘IO、网络性能监测
- java简单文本编译器_java -简易文本编辑器
- 去小公司了解哪些工具?
- mcq 队列_MCQ | 量子密码学
- MySQL笔记-InnoDB物理及逻辑存储结构
- ZeroTier内网穿透工具配置
- [C#]启动外部程序
- PAT 1031 查验身份证
- vcenter服务器修改ip,vcSA修改IP或hostname
- 基于SOA的设备智能维护系统架构设计及实现
- Ubuntu重装NVIDIA显卡驱动
- 中小水库中的水情遥测系统如何实现远程监控和自动报警?
- rhel7 pcs pacemaker corosync配置主从高可用
- synergy服务器未响应,请问synergy启动不了怎么回事???
- http://www.dewen.net.cn/q/15800/php如何生成十进制00到20之间的2位随机数
- 生化危机2重制版 小笔记
- BeautfulSoup详解
- 如何取消小程序中的云开发模式
热门文章
- Elasticsearch学习笔记-05浏览数据
- 写自己的一个pdo数据库操作框架
- 快速创建 IEqualityComparerT 和 IComparerT 的实例
- 绝对Linux服务器管理利器webmin
- FTP之‘基础连接已关闭:服务器提交了协议冲突’错误探析
- 获取系统昨日最高峰时的AWR报告,get_hight_load_awr
- 怎样把SharePoint中文备份恢复到英文版,修改sharepoint站点语言
- Spring in Action 入门之面向切面编程AOP
- 【P2766】 最长不下降子序列问题
- thinkcmf安装模板需要点击右键打开新页面的解决办法