
动态规划
guoshiyuan484
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
bzoj 1111
先看看网上我感觉有缺陷的题解:有几个显而易见的结论:最高位不能高于这个数四进制表示的位数+1如果要退位 , 每次最多退一位 , 也就是把高位上的1 , 拆成4个低位每个位上的数最多只有两种状态 , 这取决于上一位是否退了d[i][j]处理到第i位,且第i−1位[(j==0)没有,(j==1)有]退位时的答案w[i][j]此时的方案数然后就可以开心的DP了 , 转移方程很原创 2017-05-14 15:54:00 · 332 阅读 · 0 评论 -
poj1772线性dp
一般现代模型,不行上解题表。嗯,只要发现除了第二个以外其他数前面都可以是正或负就好了,可以dp。证明用归纳法很容易的#include<iostream>#include<cstdio>#include<algorithm>#include<cmath>using namespace std;int dp[110][21000];in...原创 2018-09-21 22:04:23 · 265 阅读 · 0 评论 -
轮廓线dp-poj2411-铺砖问题
/*我们要求什么?计数。嗯,dp,貌似是个好的办法。数目由什么确定?不太知道~。不过我们好像做过相似的题目,比如“开关问题"铺的砖受上下左右的砖块的影响,我们强行只考虑右和下的方向,就和开关问题,这样有助于简化一下问题也就是一块砖只影响他的右和下的方向铺砖时候'->'这样铺和向下铺,而不是'<-'这样铺和向上铺。我们再考虑下一个稍微简单的问题,怎样才能铺成功呢,在不...原创 2018-10-04 15:17:50 · 307 阅读 · 0 评论 -
poj1952(lis)
o(n^2)的做法#include<iostream>#include<cstdio>#include<algorithm>using namespace std;typedef long long ll;ll num[9000];int len[9000];int n;int v[9000];int main(){while (sc...原创 2018-09-18 19:11:51 · 205 阅读 · 0 评论 -
poj1179
#include<iostream>#include<cstdio>#include<algorithm>using namespace std;int dp[250][250][250];int v[250], kind[250];int pre[250], last[250];int p[250];int n;int nn;int ma...原创 2018-09-13 11:51:44 · 172 阅读 · 0 评论 -
poj1390
#include<iostream>#include<cstdio>#include<algorithm>using namespace std;int dp[250][250][250];int v[250], kind[250];int pre[250], last[250];int p[250];int n;int nn;int ma...原创 2018-09-13 11:50:27 · 268 阅读 · 0 评论 -
poj1742(背包)
一个背包,当然正解是完全背包,不过我用拆分法水过了。。小于等于7的数可由1 2 4拼成小于等于15的数可有1 2 4 8拼成那么对于7到15之间的数n可有1 2 4 n-7拼成运用这个思想把有限制的背包转化成0/1背包就好了。#include<iostream>#include<cstdio>#include<algorithm>...原创 2018-09-07 14:19:13 · 167 阅读 · 0 评论 -
poj1187
对网上的代码做了些优化。。题解的话到处都有。#include<iostream>#include<cstdio>#include<algorithm>using namespace std;typedef long long ll;const ll mod = 11380;ll dp[31][11][11][11];int l1, l2, l...原创 2018-09-17 12:08:33 · 318 阅读 · 0 评论 -
bzoj1956(一个快速简单的方法)
此题有树,那么能用的求最值的算法有dp,贪心,流等等,如果我们以dp的思路来解题,观察每颗子树,那么每颗子树都相当于曼哈顿路径的一部分链,子树根可以在链的头,尾,中间,其中根在头和尾是等价的。那么可以设计一个状态dp[i][0]表示,以i为根的树组成的一个从根i开始的链条,要花费的最小代价,dp[i][1]表示以i为根的树组成的一个从非根节点开始的链条,注意两个状态表示的链的出点都是非根节点。那么...原创 2018-08-06 11:30:42 · 167 阅读 · 0 评论 -
bzoj1933
此题秒一眼发现要求最值,那么能用的方法有 dp 贪心 流对于此题都是有可能的,但是感觉上dp可能性比较大因为总共的情况有3^n种,但是其中有一些不成立,不过你发现答案的最值就是2100*900这不是很大,这更印证了我们的想法,也许看到n<70发现也许是流,但是建图好像并不是很好建,所以我们dp试试。那么现在带入dp的框架,一般的dp顺序是很重要的,你一定要考虑转移的顺序,经思考发现任意顺...原创 2018-07-22 09:45:00 · 198 阅读 · 0 评论 -
bzoj2457
/*此题我先开始考虑的是每个数都不同,那么贪心就好。然后由于有相同的那么我们考虑怎样消除,最后发现我贪心没法搞重换思路用了dp,但是贪心的这个错误思路却给了我一定的启发。此题考虑最后的情况他一定是一段一段的每段都是相同的数字,那么不同段之间的接口能缝合越多,答案越优秀。注意每段都是最先一个数进去,然后后面的数按照位置重小到大排每段的接口能缝合主要是看一些相对关系:比如: 一堆数排...原创 2018-05-22 16:00:04 · 351 阅读 · 0 评论 -
bzoj1584
这题一个是注意k*k所以k#include#include#includeusing namespace std;int n, m;int pos[40000],pre[40020],visit[40020];int dp[2][210],tpos[2][210];int main(){ scanf("%d%d", &n, &m); int k = 0; for原创 2018-03-17 19:40:42 · 203 阅读 · 0 评论 -
poj2288
能ac但有数据过不了13 782 2 2 2 2 2 2 2 2 2 2 2 20 10 20 30 40 50 60 70 80 90 100 110 121 21 31 41 51 61 71 81 91 101 111 122 32 42 52 62 72 82 92 102 112 123 43 53 63 73 83 93 103 113 124 54 64 74 84 94 104 1...原创 2018-03-10 20:14:14 · 205 阅读 · 0 评论 -
codeforces883I,二分+单调性 思想是dp的思想
此题就是要注意单调性每到一个点就要更新这个点是否是 isable[]代表以这个点前的所有组是否能成我们要求的一些组islead[]代表包括这个点以及这个点是否能成我们要求的一些组然后就二分答案每次检查islead[n]就好了然后注意ablel是有单调性的这样就是nlogn了否则我们要nlogn*logn来做了还看不懂的朋友阔以留言~~~~#include#includ原创 2017-11-04 11:39:45 · 466 阅读 · 0 评论 -
hdu6212
这道题坑有点多啊,看着简单尼玛wa到死啊!!!!!主要是注意中间如果还有一样的也要合并。还有就是一定要有个数限制因为只要有3个在一起马上就是可以消除的!!!!其他看代码吧。。。。#include#include#include#includeusing namespace std;char s[500];int dp[351][351];struct pos{ int原创 2017-09-19 11:28:31 · 875 阅读 · 0 评论 -
codeforces739e绝对的干货题解!!!!!
首先我们考虑所有期望由什么情况组成。1.单独用a类型的球。2.单独用b类型的球。3 a类型和b类型一起用.然后dp的话很容易想出一个o(n^3)的算法。。。f[n][a][b]前n个怪兽我们用a 个a球,b个b球得到的期望。太慢~~~~~~~虽然能过2333333333333.之所以慢的原因是分量太多,那能不能合一起些呢?比如(单独用a和a,b一起用算一类) (单独用b...原创 2017-08-10 22:09:07 · 1526 阅读 · 0 评论 -
Virtual Singers-zoj4043-据说是青岛热身赛题目?
把a,b混在一起排序,常规操作~~a标记-1,b标记1.嗯,首先我们可以考虑两个方向,一个是仿照最大流求,最值,一个是dp,因为像这种求数值的题目,方向就是这样,还有其他方向,欢迎留言。然后注意两个性质:1:如果一个区间内a,b数目都相同,那么这个区间内的a是不会和这个区间之外的b进行匹配的。2:言下之意就是我们要确定从那个位置开始确定区间,因为同一个位置的a可能在多个能够满足上述...原创 2018-11-06 13:34:11 · 350 阅读 · 0 评论