
动态规划
文章平均质量分 63
DS_HY
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
H/D - Dollar Dayz (dp和大数)
做了一个并不对没想到会是用到大数,而且下面的代码是错误的#include #define LIMIT_ULL 100000000000000000using namespace std;const int maxi=1005;const int maxj=105;long long dp[maxi][maxi][2];long long w[maxi];int n,k原创 2017-03-21 20:02:57 · 326 阅读 · 0 评论 -
HDU(1059) 多重背包优化
多重背包优化。1.二进制装换成01背包#include <iostream>#include<algorithm>#include<cstring>#include<string>#include<cstdio>#include<vector>#include<map>using name原创 2018-07-18 10:28:52 · 237 阅读 · 0 评论 -
The Bakery CodeForces - 833B (dp+线段树)
题目网址https://cn.vjudge.net/problem/CodeForces-833B题意是,将数分为k组,每组数中的数字种类数的和为总价值,求最大总价值。 思路:首先提取每个数字单独出现的区间,用线段树去维护原先的dp最大值,dp【i】【j】表示,将数组分为 在j 的位置 已将数组分为 i 组的最大价值。 代码:#include <iost...原创 2018-07-23 10:05:10 · 257 阅读 · 0 评论 -
HDU 3001(状压dp 三进制)
题目注意: 每个点可以经过不超过两次,所以把二进制转换成三进制,就可以很好的存储状态。dp【i】【j】表示在j状态下,最后一次位置在i点。还是比较好理解的一个状压dp#include <iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<string...原创 2018-07-04 11:35:52 · 343 阅读 · 0 评论 -
hdu 1074状压dp
题目网址:点击打开链接;借用别人的题解;貌似是挺简单的状压dp,但是因为我很少写,只能看出来,但实际怎么处理不会,看了看别人代码,有点意思,真是基础题;/*分析:对于n种家庭作业,全部做完有n!种做的顺序但是n!太大了,且对于完成作业1,2,3和1,3,2和2,1,3和3,2,1和3,1,2来说完成它们消耗的天数一定是一样的,只是完成的顺序不同从而扣的分不同所以可以将完成相同的作业的所有状态...原创 2018-05-28 22:36:23 · 138 阅读 · 0 评论 -
HDU1024Max Sum Plus Plus (dp)
题目网址点击打开链接;题目没有m的范围没有想出来,然后看到网上的题解题意 给n个数,将其分为m部分,各部分之间不能有交叉重叠,求最大和思路 dp[i][j]表示前j个数分为i部分的最大和,则 dp[i][j] = max(dp[i][j-1] + a[j], dp[i-1][k] + a[j]) i-1<=k<=j-1 前者是将第j个数加入到第i部分,后者是将第j个数做为第...原创 2018-05-23 22:40:19 · 150 阅读 · 0 评论 -
副本1——dp-URAL - 1057 (数位dp)
URAL - 1057 ;看的别人的思路,很清晰;点击打开链接题目大意: 求给定区间[X,Y]中满足下列条件的整数个数:这个数恰好等于K 个互不相等的 B 的整 数次幂之和。例如,设 X=15,Y=20,K=2,B=2,则有且仅有下列三个数满足题意: 17 = 24+20, 18 = 24+21, 20 = 24+22。 输入:第一行包含两个整数X 和 Y。接下来两行包含整数 K 和 B。 输出:...原创 2018-05-07 22:05:38 · 287 阅读 · 0 评论 -
HDU 4238 区间dp
题目网址:https://vjudge.net/problem/HDU-4283ddd题意: 有k 个男生,带有d【i】的屌丝气质,原来按照1-k 的顺序进行上台表演,然后可以将第i个人放进黑屋,黑屋是以一个栈的顺序入栈出栈;例如: 8个人 3 6 4 6 9 12 34 4 进行这样的操作将 3,6, 4, 6, 9, 12,放入黑屋,34先上台,然后12 ,然原创 2017-11-28 17:57:51 · 215 阅读 · 0 评论 -
Gym-101201B(bfs+dp)
;题目网址点击打开链接;;;;;解法一:网上的这个神奇的最短路的想法,其实最短路本来就有dp思想#include #include#include#include#include#includeusing namespace std;const int inf=0x3f3f3f3f;const int maxn=5原创 2017-10-08 16:30:58 · 265 阅读 · 0 评论 -
计蒜客-面码的游戏(dp)
题目网址https://nanti.jisuanke.com/t/28475 一开始把题目看错了,写了个简单dp,后来才发现题意是:从n行任意位置走,向上向左走,然后走到(1,1),再从(1,1)位置向下向右走到m列,一个格子第一次走获得a【i】【j】的值,第二次走获得b【i】【j】的值; 队友和hls在网络流了半天,感觉有戏,但是后来发现我把m列读成了n行,(差点被打),然后...原创 2018-07-21 12:08:53 · 223 阅读 · 0 评论 -
hdu2825(状压dp+AC自动机)
题目网址https://vjudge.net/problem/HDU-2825 用ac自动机来存储状态 ,用dp来转移 dp[i][j][k] 表示当长度为i时,串末尾为 自动机中 j 节点多对应的值,此时串中选择状态为k 的数目转移时,下一位状态,字符长度加一,i+1,即是可以由,j +一个新的字符,获得如果这个字符正好是串的最后一个字符,那么k的状态变化为 加上该字符的状态...原创 2018-07-27 10:56:31 · 383 阅读 · 0 评论 -
Greetings!(枚举子集+dp)
题目网址https://nanti.jisuanke.com/t/32227题意:给n个信(信封有长宽和数目),问在找最多k种信封类型的时候,最少浪费多少纸思路:看了看题解,深以为然,这个思路很巧妙,也许是我太菜,没细想。我们首先二进制枚举计算出,每种状态下,这些信合用同一种信封时的浪费数目。然后通过枚举子集,dp[ i ] [ j ] 代表 i 种信封,现在已经装了 j ...原创 2018-10-05 10:38:46 · 296 阅读 · 0 评论 -
NAIPC-2016Mountain Scenes(递推)
题目网址:https://nanti.jisuanke.com/t/32230题意:给你一个长度为n的丝带,一个宽w一个高h 的 格子,用丝带去填充格子,这填充后只需要满足至少有一列的丝带长度与其他格子不同即可。丝带可以不全部用上,格子可以不放丝带,只要有一列的丝带长度不同则这种放法就与其他方案不同。问一共有多少种放放法。思路:直接思考由i个数凑成和为j的递推式,然后再加 组合数,...原创 2018-10-02 20:51:29 · 444 阅读 · 0 评论 -
UVA10817 Headmaster's Headache (状压DP)
题目网址:https://vjudge.net/problem/UVA-10817题意:S门课程,M个教师,N个待聘教师。每个教师都有工资数和能够教授课程种类,要求在M个教师全部选择的基础上,再选择性的雇佣一部分待聘教师,在保证S门课程都至少有2人教授的前提下,付出的工资最少。s<8思路: 我们通过课程信息来确定最终结果,用三个状态s0,s1,s2的二进制位来代表课程当前的状...原创 2018-10-02 10:57:11 · 311 阅读 · 0 评论 -
Alice’s Stamps HDU - 6249
这两天带新生都快把我带傻了。 还没get到精髓;;;;#include <iostream>#include <algorithm>#include <cstring>#include <string>#include <vector>#include <cstdio>using ...原创 2018-09-11 14:48:25 · 275 阅读 · 0 评论 -
gems gems gems HDU - 6199 (dp)
之前写完了被吞了。。。懒的再写一遍#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#include <string>#include <vector>#include <map>#includ原创 2018-09-01 11:02:34 · 194 阅读 · 0 评论 -
codeforces 981D (dp+ greedy)
题目网址http://codeforces.com/problemset/problem/981/D 题意是:将n个数字分成k个区间,每个区间和的 & 值,最大 dp的方法非常明显;dp[i][k] = check ( dp[i] [k] , dp[j-1] [ k-1] + 区间(i ,j))但是我们如何判断转移呢?事实上应该是这样的,我们从最高位开始枚举1此位...原创 2018-08-28 11:33:06 · 299 阅读 · 0 评论 -
2018多校第五场hdu 6357 Hills And Valleys(动态规划)
题目网址http://acm.hdu.edu.cn/showproblem.php?pid=6357题意: 将一个数字序列中的一段区间翻转,求翻转后的最长非递减序的子串长度,和翻转区间的左右边界。 自己思考了一下,结合了一个简单一点的cf 934C题 题解https://blog.youkuaiyun.com/mitsuha_/article/details/79326891再加上dls的讲...原创 2018-08-07 12:08:00 · 615 阅读 · 0 评论 -
codeforces 55d (lcm+数位dp)附板子
引用一篇不错的博客好了。https://blog.youkuaiyun.com/qq_33184171/article/details/52332586就是学习的人家的,很久不写,数位dp也忘记了咋写。代码如下:注意dp只需要初始化时更新一次就好,dp[i][j][k] 表示,右数第 i 位 ,mod为 j 时,lcm为k 的符合要求数目, 此处把lcm离散化了一下,#include &...原创 2018-08-06 11:38:07 · 389 阅读 · 0 评论 -
副本dp
NO.1 B - String painterhdu(2476) 区间dpThere are two strings A and B with equal length. Both strings are made up of lower case letters. Now you have a powerful string painter. With the h原创 2017-09-20 16:38:50 · 317 阅读 · 0 评论 -
Dire Wolf HDU - 5115
ai,居然是个区间dp,我当贪心,贪了很久后来知道是区间dp,推了还是推错了。看来dp还是一点不会两种方法:#include #include#include#include#include#include using namespace std;const int maxn=200+10;int dp[maxn][maxn];int p[max原创 2017-09-20 16:11:01 · 225 阅读 · 0 评论 -
超大背包
点击打开链接edf 困到不行。。。不想动弹就想在机房睡觉了,,今晚上cf怕是打不了了。。。存一波,清醒的时候看原创 2017-05-15 22:30:41 · 281 阅读 · 0 评论 -
G - The Debut Album URAL - 2018(dp)
Pop-group “Pink elephant” entered on recording their debut album. In fact they have only two songs: “My love” and “I miss you”, but each of them has a large number of remixes.The producer of t原创 2017-05-14 21:23:29 · 302 阅读 · 0 评论 -
HDU - 5707(简单dp)
abcdefadebcf//yesabcdefabecdf//no问一个串是否可以是另外两个串组成,我一开始用的队列以为只要从头开始找就好,然后发现会有一样的情况,这个无法处理,然后就用了dfs会超时,看题解之后知道原来这是个dp啊,我真是个傻子在dp[i][j],里面存值,就是说 c的前i+j个 能不能由a的前i个和b的前j个构成只要一个不行即全错原创 2017-05-03 22:11:11 · 1199 阅读 · 0 评论 -
poj 3903-Stock Exchange最大上升子序(dp)
solve1,方法会超时,关于lower_bound()的用法,实现算法点击打开链接用法点击打开链接#include #include#includeusing namespace std;int n;const int maxn=1000005;int a[maxn];int dp[maxn];const int INF=9999999999;void solv原创 2017-04-01 10:26:39 · 294 阅读 · 0 评论 -
HDU - 4489(The King’s Ups and Downs (国王的游戏 高高低低排序))(dp)
。。。就是一群数 必须按照高低高低高低 或者低高低高...的方式排列The king has guards of all different heights. Rather than line them up in increasing or decreasing height order, he wants to line them up so each guard is either sh原创 2017-04-17 20:21:36 · 900 阅读 · 0 评论 -
划分数(3题)
引用一个博客点击打开链接看看题目第一题:1269: 划分数Time Limit: 1 Sec Memory Limit: 128 MB[Submit][Status][Web Board]Problem Description将整数n分成m份,求划分的种数,注意每份不为空,不考虑顺序。比如整数4的划分,1 1 2 和 1 2 1 以及2原创 2017-04-01 17:03:51 · 808 阅读 · 0 评论 -
动态规划之简单背包问题
简单背包 输入一个物体数n,再输入n组数据,物体重量和背包价值,最后输入背包容量42 31 23 42 25方法一先用了一个递归,会有重复问题,所以用了一个dp去储存来减低循环数目;#include using namespace std;const int maxn=1000+5;int n,m;int dp[maxn][maxn];int w[原创 2017-03-16 09:12:33 · 369 阅读 · 0 评论 -
poj 1458Common Subsequence (dp)
Common SubsequenceTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 50877 Accepted: 20958DescriptionA subsequence of a given sequence is the given sequenc原创 2017-03-20 19:59:22 · 249 阅读 · 0 评论 -
HDU - 4055 (dp)
jThe signature of a permutation is a string that is computed as follows: for each pair of consecutive elements of the permutation, write down the letter 'I' (increasing) if the second element is great原创 2017-07-09 11:25:13 · 285 阅读 · 0 评论 -
CodeForces - 710E (简单dp)
注意long long 题目意思是用a去凑一个长度为n的串通过加减 ‘a’ ,或者double当前字符串当前——i 为奇数我以为是规律题,原 来是dp 但是规律跟dp是有相通之处的,通过这个题目,之前一直对dp没有任何感觉,突然之间找到了一种感觉,继续这两天练一练dp不能再一直做水题了#include #include#include#原创 2017-07-09 11:31:58 · 244 阅读 · 0 评论 -
DAG动规 uva
题目网址s#include #include#include#include#include#include#includeusing namespace std;const int inf=0x3f3f3f3f;const int maxt=2000+5;const int maxn=500+5;int dp[maxt][maxn];int ha原创 2017-08-21 17:07:01 · 358 阅读 · 0 评论 -
HDU - 6006 (状压dp)
题目网址:点击打开链接;;预处理很重要:还有后来的;(j|a[i][k])==j)j这个状态一定包含a的状态,并且没有a也一样可以完成第i个机器,神奇的位运算#include #include#include#include#include#include#includeusing namespace std;const原创 2017-08-29 20:38:42 · 351 阅读 · 0 评论 -
poj 3254 状压dp+位运算
题目网址点击打开链接题意:给一个由n*m个方块组成的土地,有的方块肥沃(用1表示,可以种草),有的贫瘠(用0表示,不可以种草),现在要在土地上种草,草所在的方块不可以是相邻的,问有多少种种草的方案;总结下本题用到的几种位运算:1.判断一个数的二进制位是否有两个相邻的 ,不相邻条件:1 x&(x2.取一个数的第k位 p&(13.判断两个数是不是同一位有1, 没有的原创 2017-08-29 10:42:46 · 247 阅读 · 0 评论 -
20170814(dp专场)
A;;B;;C;;D;;E - Blocks;;F - Party at Hali-Bula;;原创 2017-08-14 19:54:34 · 251 阅读 · 0 评论 -
UVA - 1220 Party at Hali-Bula(树形dp)
题目地址点击打开链接;开始以为是各种dfs爆搜yy中。。。;不想完全看题解,搞了很久,看了一眼后缀,据说是树形dp;然后顿悟开始修改;随他去吧;用一个二维dp【a】【b】 来更新最大值,a表示这个节点的编号,b有两个值,0,1表示这个点取与不取;用一个vector来建树;从根节点开始,也就是big boss,向他的员工出发dfs,每个点可以取,也可以不取,取:该点的原创 2017-08-14 15:44:14 · 282 阅读 · 0 评论 -
Peach Blossom Spring HDU - 4085 (斯坦纳树‘’、、+dp)
并不是很会,也表示还看不懂,今天没有状态来学习,所以决定存一存,然后以后看;题目网址点击打开链接;借用一个博客讲斯坦纳树的点击打开链接d这题的代码:点击打开链接原创 2017-07-28 21:18:35 · 331 阅读 · 0 评论 -
UVA - 1625(dp+预处理)
题目网址点击打开链接dp题目 Sample Input 2AAABBCYABBBCDEEYGBBYYRRGBSample Output1012dp[i][j] i和j表示上下两个串已经处理了多少个 ,i表示第一个串,j表示第二个每次拿去 i,j dp[i][j]=min(dp[i][j-1],d原创 2017-07-25 09:36:46 · 329 阅读 · 0 评论 -
树形DP
一个各种例题的博客点击打开链接sHoliday's AccommodationHDU - 4118#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing name原创 2017-07-23 21:19:16 · 218 阅读 · 0 评论 -
codeforces 1027E - Inverse Coloring(dp)
题目网址http://codeforces.com/problemset/problem/1027/E题意: n*n的格子,被染成白色或者黑色,每一行与其相邻的那一行的颜色要么完全相同,要么完全不同,其列也是如此。在一个n*n的矩阵中,满足条件,其中格子颜色全部相同子矩形的格子数不超过k。思路: 因为题目要求的特性,我们发现只要确定一行一列的话,就可以确定整个n*n...原创 2018-09-28 09:17:25 · 263 阅读 · 0 评论