随笔分类 -  动态规划

AtCoder Beginner Contest 252 G - Pre-Order
摘要:首先如果这是一棵二叉树,是不是很显然?只要枚举左右子树即可,时间复杂度为O(n^3)。可惜题目中不是棵二叉树,所以我们就把它转换为二叉树!按照左儿子右兄弟的方式进行构造,我们发现它的dfs序与原本的树是相同的! 我写了记忆化,但其实也可以直接区间 #include<bits/stdc++.h> us 阅读全文
posted @ 2022-05-22 11:57 nhc2014 阅读(69) 评论(0) 推荐(0)
AtCoder Beginner Contest 246 G Game on Tree 3
摘要:AtCoder Beginner Contest 246 G Game on Tree 3 首先二分是比较明显的,二分答案val看Takahashi在游戏中是否能取到大于等于val的值,也就是Aoki要在Takahashi在到达每个点大于等于val的点前将那个点清空,我们使用DP来解决,dp[x]表 阅读全文
posted @ 2022-04-08 16:37 nhc2014 阅读(56) 评论(0) 推荐(0)
UVA-1637【Double Patience】(概率dp)
摘要:题目大意:现有九堆牌,每堆有四张牌,每次我们可以选择不在同一堆上的顶上的两张牌消掉(如果两张牌数字相同的话),且每次随机选择,问最终将全部牌消掉的概率。注意有多组数据输入!(不要像我一样,交了好几次才发现。。。) 解:其实是很裸的dp,但是因为每次有消掉第一层第二层第三层第四层或者已经全部消光,所以 阅读全文
posted @ 2018-01-05 14:45 nhc2014 阅读(232) 评论(0) 推荐(0)
bzoj1093[ZJOI2007]最大半连通子图(dp+tarjan)
摘要:因为我数组开错了调了很久。。 按照题意来说很明显的是如果是一个环的话它肯定符合条件,而且为了满足最大的条件,环里的点一定是一起取的,所以先用tarjan缩点。 缩点后实质上就是取一条最长链。 然后很明显就可以按照拓扑序来dp了,side[i]表示到当前这个点为止,链的最长的长度是多少?dp[i]表示 阅读全文
posted @ 2017-12-14 16:23 nhc2014 阅读(118) 评论(0) 推荐(0)
UVALive - 3363【String Compression】
摘要:一道很裸的区间Dp,不过我判断这个字符串的最小循环节时用了kmp,结果后来去看了一下别人的题解,发现,枚举就可以了。。。 具体的不写了。 阅读全文
posted @ 2017-12-12 21:14 nhc2014 阅读(184) 评论(0) 推荐(0)
bzoj2152【树形dp】聪聪和可可
摘要:这道题还是比较显然的,我们用dp[x][y]来表示在x这个点往下取一条路段和sum%3==y的路有几种方案,很明显它可以由dp[son[x]][(y+3-w)%3]来更新(w为son[x]到x这段路的长度),如果用ans[x]来表示以x为根的子树中有多少种方案,我们分两种情况,第一种这段路不经过x点那么很明显,它肯定已被计算在ans[son[x]]中,所以我们要把ans[x]加上ans[son[x... 阅读全文
posted @ 2017-12-04 20:31 nhc2014 阅读(142) 评论(0) 推荐(0)
bzoj1087[状压dp]
摘要:果然我的水平只能写写以前的原题啊。。 地址: 用dp[i][j][k]表示第i行放的状态为j,前i行总共放了k个的合法方案数 那么dp[i][j][k]+=dp[i-1][p][k-val[p]](p是枚举的上一行的放的状态,val[p]表示这个状态下是放了几个)(当然先得保证j和k的方法分别合法且 阅读全文
posted @ 2017-12-01 21:01 nhc2014 阅读(139) 评论(0) 推荐(0)
bzoj1195 [HNOI2006]最短母串(状压dp)
摘要:题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1195 其实我写麻烦了。。。 设dp[i][j]表示在i这个状态下,我们连接这些字符串且以第j个字符串为结尾所形成的字符串最短为少,g[i][j]储存这个状态下的字符串是什么。bin[i]=2 阅读全文
posted @ 2017-11-29 17:48 nhc2014 阅读(246) 评论(0) 推荐(0)
BZOJ4720
摘要:我能说这道题我想到了思路交上去只有44分,结果发现程序各种小错误,唉。。。 其实就是一个裸的概率Dp+floyed 就是转移方程烦了一点,不过也很容易想到。 用f[i][j][k]来表示前i节课选j个来换当前这节课是否要换。 具体的就看程序吧。 阅读全文
posted @ 2017-10-12 16:25 nhc2014 阅读(153) 评论(0) 推荐(0)
正睿提高组2017模拟题七T2
摘要:说到这题,我得感谢一下出题人的仁慈,n=100的分高达90,因为题目标算为O(1)... 我首先想到的是dp,用dp[i][j][k]表示Jack在i,Rose在j,k这个人选择接下来要走的这一步的这个状态下,Jack的金钱与Rose的金钱的差值。 如果k=0表示Jack选择,k=1Rose选择 d 阅读全文
posted @ 2017-10-09 16:21 nhc2014 阅读(149) 评论(0) 推荐(0)
正睿提高组2017模拟题五T2
摘要:这题我真地想了好久怎么构造dp,可惜,最后还是不会构造,真的是太弱了。。。 先来个简单方法,我们用dp[i][a][b][c]表示前i位最长优胜序列的末尾为0的最长长度为a,末尾为1最长长度为b,末尾为2最长长度是c,的方案数。(我觉得给我多久我都根本想不到这种方程的。。。) 那么如果当前第i位可能 阅读全文
posted @ 2017-09-25 17:18 nhc2014 阅读(95) 评论(0) 推荐(0)
【数位dp】hdu2089 不要62
摘要:好吧,虽然是道水题但是是第一次接触数位dp所以还是要记录一下。 其实就是因为如果按数的大小枚举的话很不方便所以就按数位枚举并进行记忆化。 阅读全文
posted @ 2017-09-20 12:00 nhc2014 阅读(121) 评论(0) 推荐(0)
正睿提高组2017模拟题四T2
摘要:我没有想到怎么dp,怕是完了。。。(啊,只拿了5分。。。) 首先我们能发现 假设前面一个怪物为x1,y1后面一个怪物为x2,y2我们怎么确定如果两个怪物都要打先打前面那个? 列个式子如果前面一个先打前面一个耗费x1*y1+ad(x1+y1)+a^2*d^2后面一个则为x2*y2+bd(x2+y2)+ 阅读全文
posted @ 2017-09-18 16:45 nhc2014 阅读(162) 评论(0) 推荐(0)
正睿提高组2017模拟题三T1
摘要:听了很久又看了很久别人的程序才听懂,于是乎记录一下防止以后忘记。 好啦,假设当前 l-1=5,r=7;那如果学习过树状数组的话就知道题目中的操作如果转换为二进制的话 对于l-1来说他的二进制是101,所以会被加上-1的位置是101和100,r的二进制是111,所以会被加上1的位置是111,110,1 阅读全文
posted @ 2017-09-16 12:47 nhc2014 阅读(188) 评论(0) 推荐(0)
数位dp【转载】
摘要:http://blog.csdn.net/wust_zzwh/article/details/52100392 阅读全文
posted @ 2017-09-12 14:51 nhc2014 阅读(92) 评论(0) 推荐(0)
vijos1287确定的位置
摘要:题目:https://vijos.org/p/1287 解: 啊,又不会。。 阅读全文
posted @ 2017-06-21 10:24 nhc2014 阅读(115) 评论(0) 推荐(0)
vijos1623开心农场(HOI)
摘要:题目:https://vijos.org/p/1623 解: 其实我们可以发现有几块土地,和这道题目根本没什么关系,一种植物肯定比多种植物要优,所以我们就当一块土地来做,最后再把钱乘以土地数量就好了。 然后就是一个和背包很像的动归加个二分,在程序注释里解释好了。 阅读全文
posted @ 2017-06-21 10:08 nhc2014 阅读(247) 评论(0) 推荐(0)
vijos1610扑克の阵
摘要:题目:https://vijos.org/p/1610 解:额,好吧我表示一开始就没往动归上像然后没写出来 我们用f[i][j]来表示以(i,j)为右下角(1,1)为左上角的矩形中能取出的最大的k*k的扑克牌能量,g[i][j]表示以(i,j)为左上角(n,n)为右下角的矩形中中能取的最大能量,很显 阅读全文
posted @ 2017-06-21 09:59 nhc2014 阅读(159) 评论(0) 推荐(0)
BZOJ 2021: [Usaco2010 Jan]Cheese Towers
摘要:题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2021 参考博客:http://blog.csdn.net/popoqqq/article/details/46379189 解:在看懂了原来的题解的基础上,以自己认为更好理解的方式修改了代码 阅读全文
posted @ 2017-04-12 16:11 nhc2014 阅读(272) 评论(0) 推荐(0)
BZOJ 2017: [Usaco2009 Nov]硬币游戏(A Coin Game)
摘要:题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2017 参考题解:http://www.mamicode.com/info-detail-1582288.html 解:看的时候觉得是动归,然而不会设也不会列,看了半天别人的题解。。。 首先我 阅读全文
posted @ 2017-04-11 11:38 nhc2014 阅读(176) 评论(0) 推荐(0)