动态规划
文章平均质量分 76
动态规划算法
Koakuma丶珏
受尽苦难而不厌,此乃阿修罗之道
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CODE(VS) 1044 导弹拦截 (判断最长递增和最长递减子序列)
这道题和别的不同的是:zhe'ci'dao原创 2016-12-12 18:44:40 · 613 阅读 · 0 评论 -
RQNOJ 204 特种部队(dp)
题解:这道题的重点是每个按钮都必须按,且不能重复(以下讲按钮称为点)由于是双向的,而且是走到最后一个点再走回来我们可以看做两条路同时从最后那个点往回走(相当于两条路有相同起点不同终点,除最后一点外,两条路不能经过相同一点)那么可以在最先读入数组时就倒着存储,后面动规时从前到后计算便于理解和推理我们可以用一个二维数组来动规求解,dp[i][j]表示两条路分别走到i和j(i>j),原创 2017-03-02 19:52:17 · 753 阅读 · 1 评论 -
HDU4722(数位dp)
题目信息:http://acm.hdu.edu.cn/showproblem.php?pid=4722题解:题目还是要自己读的。 我的思路:这道题有两种方法,一种是找规律(这里不做讲解,因为这不是同解),下面一种方法就是这类题的通解了,就是数位dp,数位dp,顾名思义就是用来解决数论方面的问题的,其实就是开一个数组存每一位找到的结果而已。下面直接贴上代码。#includ原创 2017-03-17 17:10:07 · 515 阅读 · 0 评论 -
HDU1584(dfs回溯 或 区间dp)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1584题解: 我的思路:这道题吧!最开始我是想找到从头到尾每个牌都尝试一下第一个移动,然后因为每次都是移动自己标记的那一个位置的牌,所以没有做到枚举所有情况,感觉肯定有人和我想法一样,先把错误代码贴上,大家引以为鉴错误代码(注意!是错误代码):#include#include#inc原创 2017-03-17 20:40:56 · 944 阅读 · 1 评论 -
code【vs】1380 没有上司的舞会(树形dp)
题目描述 Description Ural大学有N个职员,编号为1~N。他们有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。每个职员有一个快乐指数。现在有个周年庆宴会,要求与会职员的快乐指数最大。但是,没有职员愿和直接上司一起与会。输入描述 Input Description第一行一个整数N。(1接下来N行,第i+原创 2017-03-06 12:10:56 · 467 阅读 · 0 评论 -
codevs1163 访问艺术馆(树型dp)
题目描述 Description 皮尔是一个出了名的盗画者,他经过数月的精心准备,打算到艺术馆盗画。艺术馆的结构,每条走廊要么分叉为二条走廊,要么通向一个展览室。皮尔知道每个展室里藏画的数量,并且他精确地测量了通过每条走廊的时间,由于经验老道,他拿下一副画需要5秒的时间。你的任务是设计一个程序,计算在警察赶来之前(警察到达时皮尔回到了入口也算),他最多能偷到多少幅画。原创 2017-03-07 13:36:26 · 399 阅读 · 0 评论 -
hihocoder#1044 : 状态压缩·一(状压dp)
#1044 : 状态压缩·一时间限制:10000ms单点时限:1000ms内存限制:256MB描述小Hi和小Ho在兑换到了喜欢的奖品之后,便继续起了他们的美国之行,思来想去,他们决定乘坐火车前往下一座城市——那座城市即将举行美食节!但是不幸的是,小Hi和小Ho并没有能够买到很好的火车票——他们只能够乘坐最为破旧的火车进行他们的旅程。原创 2017-03-13 16:59:39 · 500 阅读 · 0 评论 -
HDU 5410(01背包+完全背包)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5410题解: 题目大意:别想偷懒,赶紧过去自己翻译。 我的思路:因为第一次买的时候获得价值和后来不一样,但也只有第一次和后来的花费不一样,所以我们可以先用01背包把第一次跑一遍,然后再用完全背包跑一遍。我最开始的错误思路是用一次完全背包跑一遍,然后设个标志,如果一个物品被放进去原创 2017-03-15 21:24:18 · 455 阅读 · 0 评论 -
NYOJ-171-聪明的kk(第三届河南省程序设计大赛D题(简单dp))
聪明的kk时间限制:1000 ms | 内存限制:65535 KB难度:3描述聪明的“KK”非洲某国展馆的设计灵感源于富有传奇色彩的沙漠中陡然起伏的沙丘,体现出本国不断变换和绚丽多彩的自然风光与城市风貌。展馆由五部分组成,馆内影院播放名为《一眨眼的瞬间》的宽银幕短片,反映了建国以来人民生活水平和城市居住环境的惊人巨变。可移动“沙丘”变戏法 的灵感源于其独原创 2017-04-23 19:16:21 · 525 阅读 · 0 评论 -
HDU-5543(0-1背包)
Pick The SticksTime Limit: 15000/10000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total Submission(s): 1730 Accepted Submission(s): 553Problem DescriptionThe story原创 2017-04-25 20:22:30 · 403 阅读 · 0 评论 -
code(vs)1039 数的划分
题目描述 Description将整数n分成k份,且每份不能为空,任意两种划分方案不能相同(不考虑顺序)。例如:n=7,k=3,下面三种划分方案被认为是相同的。1 1 51 5 15 1 1问有多少种不同的分法。输入描述 Input Description输入:n,k (6输出描述 Output Description原创 2017-01-12 08:39:32 · 896 阅读 · 0 评论 -
code(vs)1017 乘积最大(划分dp)
题目描述 Description今年是国际数学联盟确定的“2000——世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年。在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得以参加。活动中,主持人给所有参加活动的选手出了这样一道题目: 设有一个长度为N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分原创 2017-01-10 16:20:10 · 685 阅读 · 0 评论 -
code(vs)1220 数字三角形(普通dp)
题目描述 Description如图所示的数字三角形,从顶部出发,在每一结点可以选择向左走或得向右走,一直走到底层,要求找出一条路径,使路径上的值最大。输入描述 Input Description第一行是数塔层数N(1第二行起,按数塔图形,有一个或多个的整数,表示该层节点的值,共有N行。输出描述 Output Description原创 2017-01-10 10:48:23 · 654 阅读 · 0 评论 -
最长递增子序列系列的两种写法
第一个案例: code(vs) 1576 最长严格上升子序列第一种写法:#include#include#includeusing namespace std;int main(){ int n, a[5005], dp[5005], ans = 0; scanf("%d", &n); for(int i = 0; i < n; i++) {原创 2016-12-12 22:25:54 · 452 阅读 · 0 评论 -
0-1背包(详解)
0-1背包问题: 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 这个问题的特点是:每种物品只有一件,可以选择放或者不放。算法基本思想:利用动态规划思想 ,子问题为:f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。其状态转移方程是转载 2016-12-05 10:48:16 · 627 阅读 · 0 评论 -
四维dp CODE(VS)1068 乌龟棋
题目连接:code(vs)1068 乌龟棋题意在这里就不赘述了,最开始也是不太懂,拿到这道题以后自己想了一下,发现用的方法不对,然后就搜了一下题解,然后就会懂了一些,因为题目给的四种卡片的个数范围是小于四十,所以我们不妨建一个四维的dp数组,然后这个问题就简单了。附上代码:#include#include#includeusing namespace std;int a[355原创 2016-12-08 19:31:07 · 507 阅读 · 0 评论 -
code(vs)2488 绿豆蛙的归宿(拓扑排序+动规)
题意:就是给一个终点和一个起点,有一只青蛙,从起点往终点走,求其到终点所走长度的期望值。题解:首先拿到题目以后,想到的是拓扑排序,然后加上dp,dp[i]表示i点到终点的期望值,那dp[v] = (dp[u]+node[i].v)/to[v], node[i].v表示这条边的出度,to[v]表示v的出度。这样就得到了dp的状态转移方程,为了方便,我采用反向存图。下面附上代码:#in原创 2016-12-16 19:50:46 · 409 阅读 · 0 评论 -
code(vs) 1154 能量项链 (区间dp)
题目描述 Description在Mars星球上,每个Mars人都随身佩带着一串能量项链。在项链上有N颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是Mars人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。如果前一颗能量珠原创 2016-12-19 11:09:50 · 477 阅读 · 1 评论 -
code(vs)1048 石子归并(区间dp)
题意:给出一系列石堆,每次可以合并相邻的两堆,且每次合并的花费是这两堆石块数量和,求把这些石堆合并为一个石堆的最小花费。题解:对于相邻的两个石堆可以选取合并或者不合并,给出状态转移方程 temp = min(temp, dp[i][k]+dp[k+1][j]+sum[j]-sum[i-1]);temp是个临时值,即找最小的相邻石堆合并, 用sum[i]存储前i个石堆的石头个数之和,这样原创 2016-12-18 13:35:09 · 563 阅读 · 2 评论 -
code(vs)1010 过河卒 (棋盘dp)
题目描述 Description 如图,A 点有一个过河卒,需要走到目标 B 点。卒行走规则:可以向下、或者向右。同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点。例如上图 C 点上的马可以控制 9 个点(图中的P1,P2 … P8 和 C)。卒不能通过对方马的控制点。 棋盘用坐标表示,A 点(0,0)、B 点(n,m)(n原创 2016-12-28 16:42:06 · 460 阅读 · 0 评论 -
code(vs)1169 传纸条(四维dp, 三维dp)
题目描述 Description小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。幸运的是,他们可以通过传纸条来进行交流。纸条要经由许多同学传到对方手里,小渊坐在矩阵的左上角,坐标(1,1),小轩坐在矩阵的右下角,坐标(m,n)。从小渊传到小轩的纸条只可以向下原创 2017-01-10 09:30:45 · 1081 阅读 · 0 评论 -
code(vs)1219 骑士游历 (棋盘dp)
题目描述 Description设有一个n*m的棋盘(2≤n≤50,2≤m≤50),如下图,在棋盘上有一个中国象棋马。规定:1)马只能走日字2)马只能向右跳问给定起点x1,y1和终点x2,y2,求出马从x1,y1出发到x2,y2的合法路径条数。输入描述 Input Description第一行2个整数n和m第二行4个整数x1,y1,x2,y2原创 2017-01-10 10:29:50 · 749 阅读 · 0 评论 -
NYOJ-308-Substring(第四届河南省程序设计大赛F题(简单状压dp))
Substring时间限制:1000 ms | 内存限制:65535 KB难度:1描述You are given a string input. You are to find the longest substring of input such that the reversal of the substring is also a substrin原创 2017-05-08 19:35:29 · 519 阅读 · 0 评论
分享