![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DP
QiHang_QiHang
这个作者很懒,什么都没留下…
展开
-
UVa1630 Folding 记忆化搜索
Bill is trying to compactly represent sequences of capital alphabetic characters from `A' to `Z' by folding repeating subsequences inside them. For example, one way to represent a sequence `AAAAAAAAAA原创 2017-09-24 10:01:50 · 374 阅读 · 0 评论 -
Gym - 101628A DP
题意:在a字符串中删除某个w子串(可以分散的),问能到多少种b字符串。样例: Input weewrshkimsim Output 1 Input qqqaaabbbcccfffrrrqabcfr Output 729思路:题目意思实则就是求a串中的w串有多少种组成种类。dp[i][j] 表示 a串前i个字符 构成w字符...原创 2018-05-16 21:13:18 · 231 阅读 · 0 评论 -
POJ1185(状压DP)
题意中文题。题解首先考虑每一行(横向)的影响,每个战队战火波及范围是两格,所以保证(state & state<<1)和(state & state<<2)都要为0。并且每行中最多的状态不是1<<10,正因为战火会影响两格,所以一行的状态最多不超过60。所以可以预处理出每行可行的状态。再考虑列的情况,第i行只会影响到第i-1行...原创 2018-07-28 16:12:14 · 478 阅读 · 0 评论 -
UVA - 12563 劲歌金曲(DP 01背包)
题目KTV里面有n首歌曲你可以选择,每首歌曲的时长都给出了(每首歌时长不超过3min). 对于每首歌曲,你最多只能唱1遍. 现在给你一个时间限制t (t<=10^9) , t实际不会超过(180n+678)问你在最多t-1秒的时间内可以唱多少首歌曲num , 且最长唱歌时间是多少time 最终输出num+1 和 time+678 即可(最后唱一首“劲歌金曲”).你需要优先让歌曲数目最...原创 2018-07-22 12:39:56 · 269 阅读 · 0 评论 -
UVA11400 - Lighting System Design(DP)
题意给定n种类型灯泡,每个灯泡给出其电压v,电源花费k,每个灯的花费c和这种灯泡需求数量l(一套灯光系统总的灯泡数是每种灯泡数量之和),现在通过用电压大的灯泡替换某些电压小的灯泡来减小灯光系统总花费,求最小的花费。题解考虑到替换灯泡只能从低电压想高电压替换,所以最终结果一定是有灯泡被换成了高电压的。所以可以先按照电压大小v来排序。那么动态规划中间的状态就是第i个灯泡前面的一些灯泡被...原创 2018-07-22 18:55:57 · 226 阅读 · 0 评论 -
POJ3254(状压DP)
题意给你一个n*m的矩阵(农田),1表示可以种植,0表示不能种植。且上下和左右每个单元不能相邻。问有多少种种植方法(可以不种植)。样例Sample Input2 31 1 10 1 0Sample Output91 2 30 4 0种植一棵树(1,2,3,4)4种,两棵(13,14,34)3种,三棵(134)1种,零棵树1种,sum = 4+3+1+1 ...原创 2018-07-28 11:35:39 · 306 阅读 · 0 评论 -
HDU6365 (区间DP)
题意以原点(0,0)为中心建立二维坐标轴,在一二象限有一些线段(障碍物)。障碍物信息(H,L,R,W)分别表示高度、左右端点、和防御力。现从原点发出一些射线来消灭这些障碍物,每条射线的能量为X,消灭防御力为Wi的障碍物最小的能量是Wi。并且射线的能量在射穿障碍物是没有能量损耗的。问最少需要多少能量能够消灭所有的障碍。 题解1. 只需要考虑像所有障碍物的两个端点去发...原创 2018-08-10 16:10:06 · 504 阅读 · 0 评论 -
SGU 495 Kids and Prizes (概率DP基础)
题意n个盒子里装有礼物,m个人依次随机选择礼物,选完之后空盒子放回问最后选中的礼物数的期望。题解(1)第i个人得到礼物的概率:假如第i-1个人没有得到礼物,那么i得到礼物的概率和i-1一样。假如第i-1个人得到了礼物,那么i得到礼物的概率是i-1得到礼物概率减去1/ndp[i]=(1-dp[i-1])*dp[i-1]+dp[i-1]*(dp[i-1]-1.0/n);...原创 2018-08-11 11:01:34 · 295 阅读 · 0 评论 -
ZOJ3640(概率DP)
题意某人被抓进了洞穴,要想办法逃出来。洞穴有N个出口,每个洞口有一个怪,每个怪有战斗力C[i]。这个人的初始战斗力是f。每天他会选择一个出口逃走。如果他的战斗力f>C[i],那么他可以打败怪物并花费t[i] = (1.0+sqrt(5.0))*0.5*C[i]*C[i](取整)天逃出去。否则他会修炼一天,战斗力提升f = f+c[i]。第二天再随机选择一个出口。此人一定...原创 2018-08-11 15:57:53 · 251 阅读 · 0 评论 -
POJ2096(概率DP基础)
题意一个软件有s个子系统,这个软件会产生n种bug。某人一天发现一个bug,这个bug属于n种bug中的某种bug,发生在某个子系统中。求找到所有的n种bug,且每个子系统都找到bug,这样所要的天数的期望。题解找到某种bug的概率是1/n,属于某个子系统的概率是1/s。设dp[i][j]是找到了i种bug,存在于j个子系统中,此状态下达到目标天数的期望。dp[...原创 2018-08-13 10:35:55 · 334 阅读 · 0 评论 -
洛古P1725(DP+单调队列)
题意有0~n这样的n+1个位置,每个位置都有一个权值,一个人在这个位置就会获得这个位置的权值A[i]。一个人最开始在0位置权值为0,假设他现在在i,他下一步只能走到[i+L, i+R]的位置。问他走完后获得的最大权值,i >=n就算走完。样例 输入样例#1:5 2 30 12 3 11 7 -2输出样例#1:11题解设dp[i]为到...原创 2018-08-27 17:09:59 · 359 阅读 · 0 评论 -
hiho1353零一背包
#1353 : 满减优惠时间限制:10000ms单点时限:1000ms内存限制:256MB描述最近天气炎热,小Ho天天宅在家里叫外卖。他常吃的一家餐馆一共有N道菜品,价格分别是A1, A2, ... AN元。并且如果消费总计满X元,还能享受优惠。小Ho是一个不薅羊毛不舒服斯基的人,他希望选择若干道不同的菜品,使得总价在不低于X元的同时尽量低。你能算出这一餐小原创 2018-01-18 20:55:48 · 372 阅读 · 0 评论 -
LightOJ1079 Just another Robbery 01背包、概率
题意:给出银行的个数和被抓概率上限P。在给出每个银行的钱和抢劫这个银行被抓的概率。 求不超过被抓概率上线能抢劫到最多的钱。两种方法方法一:dp[j]为抢劫了j元钱不被抓到概率,状态转移方程dp[j] = max(dp[j], dp[j - w[i]] * p[i])#include #include #include #include #include #incl原创 2017-11-28 19:37:21 · 259 阅读 · 0 评论 -
HDU3652 数位DP 记忆化搜索
Problem DescriptionA wqb-number, or B-number for short, is a non-negative integer whose decimal form contains the sub- string "13" and can be divided by 13. For example, 130 and 2613 are wqb-numbers原创 2017-09-24 20:49:53 · 332 阅读 · 0 评论 -
UVA10285 DP记忆化搜索
Problem CLongest Run on a SnowboardInput: standard inputOutput: standard outputTime Limit: 5 secondsMemory Limit: 32 MB Michael likes snowboarding. That's not very surprising, since snow原创 2017-09-20 09:48:45 · 364 阅读 · 0 评论 -
记忆化搜索理解
记忆化搜索: 算法上依然是搜索的流程,但是搜索到的一些解用动态规划的那种思想和模式作一些保存。一般说来,动态规划总要遍历所有的状态,而搜索可以排除一些无效状态。 更重要的是搜索还可以剪枝,可能剪去大量不必要的状态,因此在空间开销上往往比动态规划要低很多。 记忆化算法在求解的时候还是按着自顶向下的顺序,但是每求解一个状态,就将它的解保存下来,以后再次遇到这个状态的时候,就不必转载 2017-09-20 13:00:53 · 413 阅读 · 0 评论 -
UVA1025 A Spy in the Metro DP
DescriptionSecret agent Maria was sent to Algorithms City to carry out an especially dangerous mission. After several thrilling events we find her in the first station of Algorithms City Metro, exam原创 2017-09-28 19:26:45 · 264 阅读 · 0 评论 -
UVa 10118 Free Candies 记忆化搜索
题目大意:有4堆糖果,每堆有n个,有一只最多能容5个糖果的篮子。现在,要把糖果放到篮子里,如果篮子中有相同颜色的糖果,放的人就可以拿到自己的口袋。如果放的人足够聪明,问他最多能得到多少对糖果。题目分析:很显然的多阶段决策。定义dp(a,b,c,d)为每堆糖果分别拿掉a、b、c、d块之后最多能获得得糖果对数。则决策有4个,以第一堆为例,状态转移方程为:dp(a,b,c,d)=dp(a+1,b,c原创 2017-09-20 21:07:26 · 304 阅读 · 0 评论 -
HDU6197 最长有序子序列 DP+二分查找
**思路**利用DP+二分查找依次找出最长递增子序列和最长递减子序列,取二者中较大值。如果结果 ans>=n-k 那么这样的序列满足条件是一个魔法数组。**代码**#include <iostream>#include <stdio.h> #include <stdlib.h> #include <string.h> #inclu...原创 2017-09-12 21:53:11 · 372 阅读 · 0 评论 -
UVa1629 记忆化搜索 分格子
题意:n*m大小的蛋糕,被分成n*m个区域,其中k个区域上面有樱桃。你需要把蛋糕切成k份,每份都有樱桃,切的时候只能水平或竖直沿着网格线切,切到底。问最短切的长度是多少。 思路:DP。DP[u][d][l][r]。u,d,l,r表示整块蛋糕的上下左右。一块大蛋糕的最优切法一定也是它分成两块以后的最优切法,枚举每种切法记忆化搜索可解。状态转移方程见代码。 代码:原创 2017-09-22 00:19:47 · 410 阅读 · 0 评论 -
LCS最长公共子序列
Procedure LCS_LENGTH(X,Y); begin m:=length[X]; n:=length[Y]; for i:=1 to m do c[i,0]:=0; for j:=1 to n do c[0,j]:=0; for i:=1 to m do for j:=1 t原创 2017-11-09 19:22:43 · 303 阅读 · 0 评论 -
POJ1159求LCS长度 滚动数组优化空间
Memory Limit: 65536KTotal Submissions: 9042 Accepted: 3864 Special JudgeDescriptionIn a few months the European Currency Union will原创 2017-11-09 19:37:11 · 477 阅读 · 0 评论 -
HiHo第173周 A Game 区间DP
时间限制:10000ms单点时限:1000ms内存限制:256MB描述Little Hi and Little Ho are playing a game. There is an integer array in front of them. They take turns (Little Ho goes first) to select a number f原创 2017-10-26 20:42:20 · 276 阅读 · 0 评论 -
HDU6415(DP)
题意给两个整数n,m,让你构造一个矩阵n*m的矩阵,此矩阵满足一下两点:1.只有一个元素在它的此行和此列中都是最大的(纳什均衡点)。2.矩阵中1~n*m中的数都恰好出现一次。问有多少种构造方法? 题解从大到小的放,下一个数需要放在已经被放过数的的行和列上,不然这个点就会成为新的纳什均衡点。我们设dp(i,j,k)表示当前已经放了i个数且有j行k列被放过数了。那么就...原创 2018-08-21 15:14:01 · 419 阅读 · 0 评论