DP
文章平均质量分 77
ACM_Napoleon
这个作者很懒,什么都没留下…
展开
-
HDU 1025 Constructing Roads In JGShining's Kingdom (DP----LIS 的nlogn算法)
链接 : http://acm.hdu.edu.cn/showproblem.php?pid=1025开始用N^2的方法总超时 , 后来找到了nlongn的算法,就可以过去了参考--- http://www.cnblogs.com/mengxm-lincf/archive/2011/07/12/2104745.html就是利用一个数组,下标代表当前LIS的长度 其值代表 当前长度的原创 2013-07-29 15:39:17 · 935 阅读 · 0 评论 -
ZOJ 3822 Domination / The 2014 ACM-ICPC Asia Mudanjiang Regional Contest
题目: LINKdp[i][j][k] 表示当前用了dp[i][j][k] 由 dp[i][j][k-1] , dp[i-1][j][k-1], dp[i][j-1][k-1], dp[i-1][j-1][k-1]得到,分别表示 添加的新的一个chess, 不覆盖新的行列, 只新覆盖一行, 只新覆盖一列, 同时新覆盖一行和一列,得到dp[i][j][k]。递推时, 每个概率 *原创 2014-10-12 18:05:28 · 1525 阅读 · 0 评论 -
Codeforces Round #277 (Div. 2) D. Valid Sets (树形DP)
题目: LINK原创 2014-11-12 16:10:03 · 847 阅读 · 0 评论 -
[DP] 塔
地址: http://icpc.ahu.edu.cn/OJ/Problem.aspx?id=518Description给出N个木块,告诉你每个木块的高度,你要用这些木块搭出两座高度相同的塔,一个塔的高度为搭建它的木块的高度之和,并且一个塔至少要用一个木块。木块只能用一次,也可以不用。问在这两座塔高度相同的条件下,能够搭出的塔的最大高度是多少?Input第一原创 2013-11-01 11:26:18 · 1101 阅读 · 0 评论 -
HDU 3853 LOOPS (简单概率DP)
题目: LINK题意:迷宫是一个R*C的布局,每个格子中给出停留在原地,往右走一个,往下走一格的概率,起点在(1,1),终点在(R,C),每走一格消耗两点能量,求出最后所需要的能量期望.基础的概率期望DP吧,E[i][j] 表示从(i, j)这个位置到达(n, m) 这个位置花费的期望。可以得到 E[i][j] = p1 * E[i][j] + p2 * E[i][j+1] + p3原创 2014-11-08 18:48:10 · 837 阅读 · 2 评论 -
HDU 4035 Maze (概率DP)
题目; LINK题意: 有n个房间,由n-1条隧道连通起来,实际上就形成了一棵树, 从结点1出发,开始走,在每个结点i都有3种可能: 1.被杀死,回到结点1处(概率为ki) 2.找到出口,走出迷宫 (概率为ei) 3.和该点相连有m条边,随机走一条 (概率1 - ki - ei) 求:走出迷宫所要走的边数的期望原创 2014-11-08 16:41:40 · 834 阅读 · 0 评论 -
HDU 5001 Walk / 2014 ACM/ICPC Asia Regional Anshan Online
题目: LINK一共n个点,一个人从每个点出发的概率是1/n,到达邻接点的概率相同,求走d步都不会到达ai点的概率i = [1,n]暴力枚举每一个点ai, 求的是d步内都不会经过ai,dp[i][j] , 表示走第i步,走到j的概率的值,为了体现不经过ai点,进行dp过程时,不用和ai点相连的边进行状态转移。ans = sum(dp[d][j]) ( j != ai)原创 2014-09-14 00:32:30 · 839 阅读 · 0 评论 -
HDU 5000 Clone / 2014 ACM/ICPC Asia Regional Anshan Online
题目:LINK原创 2014-09-13 18:40:51 · 1191 阅读 · 0 评论 -
Codeforces Round #263 (Div. 1) B. Appleman and Tree( 树形DP )
题目: LINK给定一个树,每个节点是白色或者黑色。可以删去一个边的集合使得剩下来的每个树里面有且仅有一个节点是黑色的。求这样集合的数量。显然是树形DP。 dp[n][2], dp[i][j]代表到i这个点它所在的子树的划分情况都满足条件(每部分只有一个黑点)的情况下,dp[i][0] 包含i节点的这部分没有黑点的数量,dp[i][1]表示这部分有一个黑点的种类。对于每个节点,计算原创 2014-08-27 11:17:52 · 937 阅读 · 0 评论 -
ZOJ 3329 One Person Game (概率DP)
题目: LINK原创 2014-11-01 17:31:03 · 754 阅读 · 0 评论 -
CF 477 C Dreamoon and Strings (DP)
题目: LINKdp[i][j] 表示前i个字母里面去除j个字母后最多的不重复的p串的数量.有两种情况,要么选取1~i中最后一个和p一样的串,要么不选取,dp[i][j] = max(dp[i-1][j], dp[ii][jj]+1), ii为匹配完p后在原串中的位置,jj为j-(匹配p过程中删去字母的数量);#include #include #include #inclu原创 2014-10-15 15:30:03 · 872 阅读 · 0 评论 -
HDU 5151 Sit sit sit (区间DP)
题目:LINK一共有并排N个椅子, N个学生依次去坐,同时满足3个条件就不能坐下去:1,该椅子不在最左,不在最右,2,该椅子左右都有人坐了,3,左右的椅子不同颜色求最后N个人都能坐下去,有多少不同的情况.区间DP,dp[i][j] 表示i~j坐满的不同的情况数.if(t-1 和 t+1 颜色不同) ,dp[i][j] = sum(dp[i][t-1] * dp[t+1][j]原创 2014-12-28 13:09:45 · 1291 阅读 · 2 评论 -
HDU 1568 Legal path (DP)
题目: LINK题意:给定一个有向图,求1->n的“最短路”。这儿的“最短路”有限定条件----就是最短路上的每一条边的权值比上一条边(如果有的话)至少大k。点数n 1e5, 边数m 2e5比较大。可以考虑DP的解法。可以先把所有的边按照权值大小排序,最容易想到的是O(m^2)的解法。这样中间会遍历许多没有用的边,所以我们要优化一下。我们可以发现,通过直接的边i, j到达x点, 如原创 2015-02-04 19:18:30 · 1046 阅读 · 0 评论 -
HDU 5125 magic balls
题目 :LINK和普通的LIS相比,是多了一个可以交换m次的机会。不考虑复杂度的话,可以很类似求普通LIS O(n^2)的方法,每次求前面小于当前的值且LIS最长的那一个进行转移。如果现在还是按照这样的话,复杂度是O(n*n*m),优化的话,可以考虑优化如何快速找到,在交换x次的情况下前面比当前值小的最长LIS是多大。我们可以采用树状数组,进行维护m+1个树状数组每次寻找当前前面的原创 2014-11-30 22:00:13 · 1015 阅读 · 2 评论 -
Codeforces Round #277.5 (Div. 2) E. Hiking(二分 DP)
题目:LINK原创 2014-11-22 16:32:14 · 839 阅读 · 0 评论 -
ACdream 1429 Rectangular Polygon (DP)
题目:LINK原创 2014-10-19 21:13:20 · 814 阅读 · 0 评论 -
HDU 4405 Aeroplane chess (概率DP)
题目: LINK原创 2014-11-02 14:46:58 · 757 阅读 · 0 评论 -
HDU 4089 Activation(概率DP)
题目: LINK题意:有n人要激活游戏,n个人排成一个队列(Tomato最初排名为m),对于队列中的第一个人,在激活的时候有以下4种情况: 1.激活失败:留在队列中继续等待下一次激活(概率p1) 2.失去连接:激活失败,出队列然后排到队列的尾部(概率p2) 3.激活成功:出队列(概率p3) 4.服务挂了:服务器停止服务了,所有人都无法激活了(概率原创 2014-11-02 21:38:04 · 795 阅读 · 0 评论 -
HDU 5064 Find Sequence
题目: LINK原创 2014-10-14 19:52:18 · 846 阅读 · 0 评论 -
ZOJ 1232 Adventure of Super Mario(最短路, DP)
LINK: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1232题意是, 一共a+b个点前a个点表示a个村庄,b表示b个城堡,要求你从(a+b)-th走到1-th的距离最短,你可以使用k次鞋子,一次鞋子走的距离不能超过l, 而且不能中途经过城堡。 从1到(a+b)和从(a+b) 到1是一样的过程,可以先用f原创 2014-08-12 14:30:34 · 841 阅读 · 0 评论 -
Codeforces Round #259 (Div. 2) D. Little Pony and Harmony Chest
LINK: http://codeforces.com/contest/454/problem/D一道状态压缩DP题目,感觉不错的题目。题意是,给你一个数列a[n],n可以发现,b[i]的最大值不会过59,因为a[i]最大为 30 ,如果b[i]>=59,不如令b[i] = 1,因为全1的数列互质。这样就可以DP了,60内的质数不过16个(状态压缩), dp[i][j], i表原创 2014-08-02 21:14:06 · 738 阅读 · 0 评论 -
HDU 1257 最少拦截系统 DP
题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1257目测 很水,但是短时间内竟然没有思路~ 还是太弱了 以后回头看看吧~~~#include#include#include#include#define PI acos(-1.0)#define max(a,b) (a)>(b)? (a):(b)#define min(a,原创 2013-07-26 21:14:14 · 750 阅读 · 0 评论 -
POJ 3181 Dollar Dayz (背包方案数& 超长度数相加)
完全背包, 只不过是求最大的方案数 状态转移方程 f[i][j] =sum( f[i-1][j] , f[i][j-i] ) 只是类似背包用一维表示而已, 变为了 f[i]+= f[j-i] 了而,结果可能__int64都无法容纳 , 故,需要自己写函数解决 详见 代码#include#include#include#include#define PI acos(-1.0)#原创 2013-07-26 16:27:23 · 985 阅读 · 0 评论 -
HDU 3008 Warcraft (DP 背包)
题目开始时,丝毫没有想法,其实,变量多可以找到其中重要的状态,可以找到其 状态转移方程dp[i][j] --------- i表示, 第i秒, j表示 此时hero的魔法值 ,其值表示,当前的量可以对monster造成的最大伤害可以近似看成完全背包问题dp[i][j]= max( dp[i][j], dp[i-1][j-a[k]]+b[k] )#include#include#原创 2013-08-01 20:17:42 · 1220 阅读 · 0 评论 -
POJ 2192 Zipper (DFS / DP)
开始DFS专题 做过, 记得 如果不剪枝不超时,就需要对 搜索过的进行标记,下次不再搜索;最近看DP,就拿来看看,不过也是弄了一大会的。。。。。。DFS代码#include#include#include#include#define PI acos(-1.0)#define max(a,b) (a)>(b)? (a):(b)#define min(a,b) (a)>(b)原创 2013-07-23 21:22:36 · 891 阅读 · 0 评论 -
POJ 1837 Balance (DP)
题目链接: http://poj.org/problem?id=1837#include#include#include#include#define PI acos(-1.0)#define max(a,b) (a)>(b)? (a):(b)#define min(a,b) (a)>(b)? (b):(a)#define INT_MIN -0x7FFFFFFF#define原创 2013-07-24 09:46:25 · 828 阅读 · 0 评论 -
POJ 1458 Common Subsequence
最长公共子序列问题http://poj.org/problem?id=1458简单 经典DP不是自己独立解决的。。。http://blog.csdn.net/yysdsyl/article/details/4226630#include#include#include#include#define PI acos(-1.0)#define max(a,b) (原创 2013-07-23 19:31:06 · 872 阅读 · 0 评论 -
HDU 2059 龟兔赛跑 (DP)
这题每个步骤有个决策,就是在冲电站时选择冲或不冲,每个决策有影响后面的决策,然后就是怎样让每一步达到 最优,这时就要用dp中的精华开数记录然后更新,用一个数组记录每一步的最优解,然后再根据决策的不同,将所有可能的情况列出得这一步的最优解,再保存,下来重复操作。这样最后的到的解就为整体的最优解。 到达每个充电站的 最短时间, 应为 , 由前面某一个充电站充电完成后 开过来所用的最短时间,即原创 2013-07-29 20:04:06 · 955 阅读 · 0 评论 -
HDU 1505 1506 2830 2870求最大矩阵面积 DP
题目: http://acm.hdu.edu.cn/showproblem.php?pid=1505题目: http://acm.hdu.edu.cn/showproblem.php?pid=1506Largest Rectangle in a Histogram 这个题目简单一点,遍历给定的每一个数,求出每一个数的 l[i] 和 r[i] 即连续的左边递减,右边递增边界,求的时候不能直接原创 2013-07-27 14:54:05 · 1030 阅读 · 0 评论 -
HDU 1080 Human Gene Functions (DP)
http://acm.hdu.edu.cn/showproblem.php?pid=1080求添加 ‘-’ 后的 最大的组合值状态转移方程: dp[i][j]=max(dp[i-1][j-1]+num[s1[i]][s2[j]], dp[i-1][j]+num[s1[i]][5], dp[i][j-1]+num[5][s2[j]] );由于 dp[i][0] 和dp[0][i] 的状原创 2013-07-28 17:04:07 · 829 阅读 · 0 评论 -
Codeforces Round #FF (Div. 2) C. DZY Loves Sequences
题目: DZY Loves Sequences给你n 个数, 让你至多可以改变一个数原创 2014-07-17 13:55:38 · 826 阅读 · 0 评论 -
POJ 2411 Mondriaan's Dream
http://poj.org/problem?id=2411原创 2014-04-21 11:43:55 · 753 阅读 · 0 评论 -
CF RCC 2014 Warmup (Div. 2) D. Cunning Gena
LINK题意 : 一个人要完成m道题目, 他不会,只能去求助她的n个朋友,每个朋友 可以完成mi道题目,需要报酬xi,(拿到报酬后把他会的题目可以全部完成)。同时 每个朋友 去做题目 需要这个人的电脑 有ki个monitor, monitor价值都为b。(即最终要有monitor的个数为 她选择的朋友中的ki的最大值。)如何选择 使得 总的花费最少,做完所有的题目。m很小 (2原创 2014-04-20 09:48:12 · 894 阅读 · 0 评论 -
简单数位DP
不要62 http://acm.hdu.edu.cn/showproblem.php?pid=2089求 (n,m)之间不含 4 和 62 的个数 , (0DP[i][j]表示 从高位起 的 当前第i位状态为j的 且不在数值边界的 符合条件的 数字个数。上一位 是6 j=1,否则f=0;记忆化搜索,注意数值边界不能用dp[][]记忆化。#include#include#inc原创 2014-03-02 03:16:13 · 1063 阅读 · 0 评论 -
POJ 1112 Team Them Up!
http://poj.org/problem?id=1112题意:一共N个人,给出每个人和其余人是否认识,把所有人分成两组。要求1)每一个人 属于其中一组。2)每组必须有人 3)每组内的所有人 必须相互认识(有向边 相互认识 才是认识) 4)两组的人数之差尽可能小先读入数据,把两两不认识的人 连边, 建图,则同一边连接的两点不能在同一组。建完图后,进行DFS 染色,可以原创 2013-11-08 17:14:09 · 938 阅读 · 0 评论 -
Codeforces Round #139 (Div. 2) C. Barcode
题意:给定n*m的矩阵 只有 # or . 要求 每列通过修改后 只存在 # 或者 . ,并且同种符号 连续的列数 q 满足 x数据保证 可以达到目标。设dp[i][j][k] i大小 1000 表示 第i列 , j 0 或1 分别表示当前 #号连续或者 . 号连续 ,k 大小 1000 表示 对应j的 列连续个数dp的值表示 达到当前状态 的最小修改次数。由 dp[i][0][原创 2013-11-03 22:06:21 · 802 阅读 · 0 评论 -
[DP] Codeforces Round #197 (Div. 2) C. Xenia and Weights
链接: http://codeforces.com/contest/339/problem/CDFS DP 方法都可解,DFS没什么可说的DP时 设 一个 3维dp[i][j][k] 表示 第i 次 放砝码(一共m次) ,此次放的是 j 这个重量的砝码(如果有), 放完是 k 这个重量差(此次放的这个盘比另一个重), 这个数组的值表示达到当前状态 的上一次 (即第i-1次) 放的砝码重原创 2013-11-02 20:33:07 · 961 阅读 · 0 评论 -
HDU 1421搬寝室 DP
http://acm.hdu.edu.cn/showproblem.php?pid=1421先进行排序,前i个物品,取K对,对于第i个物品是否取得, 若不取 ,此时 为 前i-1个物品取K对的值, 若取, 则第i个和第i-1个要组成一对同时取得,此时 为 前i-2个物品取k-1对的值 + i和i-1 之差的平方。 状态转移方程 dp[i][j]=min(dp[i-1][j]原创 2013-07-28 09:58:23 · 879 阅读 · 0 评论 -
HDU 5185 Equation (DP)
题目:LINK题意:求满足题目要求的x序列的种类数。可以发现符合条件的序列去重后是一个0, 1, ..., k的连续序列(k满足k*(k+1)/2 可以DP。dp[i][j]表示用到1~i的连续数字当前和为j的方法数。不用考虑长度是否满足n个,因为前面可以用0补上去。dp[i][j] = dp[i][j-i] + dp[i-1][j-i]; ans = sum(dp[i][n]原创 2015-03-14 11:32:36 · 1335 阅读 · 2 评论