随笔分类 -  H-动态规划=================

摘要:Link: BZOJ 3576 传送门 Solution: 算是发现博弈论题目的一部分套路了吧 求SG函数,然后用各种奥妙重重的方式降求解SG的复杂度 此题由于每一组独立,用SG函数肯定是没问题的。 先看暴力 $O(n^2)$ 求解SG的方式: 枚举每个$i$分成的份数$m$,只分为$i/m$和$i 阅读全文
posted @ 2018-05-31 22:54 NewErA 阅读(174) 评论(0) 推荐(0)
摘要:Link: BZOJ 1072 传送门 Solution: 一道直接next_permutation纯暴力就能过的题? 难道2007年时大家都不知道next_permutation这个函数吗 还是用复杂度更优的状压DP吧 设$dp[i][j]$为状态为$i$且对$d$余$j$的个数, 注意$dp[( 阅读全文
posted @ 2018-05-31 22:38 NewErA 阅读(216) 评论(0) 推荐(0)
摘要:Link : BZOJ 1296 传送门 Solution: 还是自己DP做少了啊,这种**题一开始还做错了 由于每一条木板间是独立的,且涉及到染色次数的分配 要想到对木板间进行分组DP 而要实现分组DP就要先求出每条木板上染色$x$次能贡献的最大答案 这个用背包DP$O(n^3)$就行了 Code 阅读全文
posted @ 2018-05-31 22:26 NewErA 阅读(386) 评论(0) 推荐(0)
摘要:Link: BZOJ 2817 传送门 Solution: 算是比较神的DP了吧, 首先这个绝对值处理起来很难受,肯定要想办法去掉 于是想到从小到大插入的方式,便不存在绝对值的问题了 插入一个数只有5种情况,我们来分类讨论: 1.插入以后它两边都没有数。(权值$-2*i$,方案数$k+1-l$) 2 阅读全文
posted @ 2018-05-30 22:39 NewErA 阅读(250) 评论(0) 推荐(0)
摘要:Link:https://www.lydsy.com/JudgeOnline/problem.php?id=1566 Solution: 思路十分精奇的一道题目 题目要求的是$\sum_{i=1}^k a_i^2$ 明显发现$a_i$是难以求解的,于是考虑如何整体处理$a_i^2$ 由于$a_i^2 阅读全文
posted @ 2018-05-29 19:07 NewErA 阅读(168) 评论(0) 推荐(0)
摘要:Link:https://www.lydsy.com/JudgeOnline/problem.php?id=1195 Solution: 看到数据范围n<=12,就要往状压DP上想 为了保证后项无关性,首先肯定要先将已被包含的子串去除,这样保证两个串合并时必然是首尾相接 接下来预处理出第i个串接在第 阅读全文
posted @ 2018-05-28 09:48 NewErA 阅读(251) 评论(0) 推荐(0)
摘要:Brief Intro: 对于四元组(v,c,l,r),求其子序列中v最大的和,并使其满足: 1、Ci+Li+Ri相同 2、L1=0,Rn=0 3、Li=Sigma(C1...Ci-1) Solution: 算是有条件约束的DP吧 设dp[k]为选到k且选k的最大值 对于每个条件,我们这样处理: 1 阅读全文
posted @ 2018-05-25 08:50 NewErA 阅读(158) 评论(0) 推荐(0)
摘要:Link:https://www.lydsy.com/JudgeOnline/problem.php?id=1499 Solution : 能立即发现这是和动态规划相关的题目 令f[t][i][j]表示第t段时间时,钢琴位于(i,j)处时,从第1段时间到第t段时间的最长滑行路程。 f[t][i][j 阅读全文
posted @ 2018-05-24 15:40 NewErA 阅读(263) 评论(0) 推荐(0)
摘要:Link: BZOJ 1833 传送门 Solution: 比较明显的数位DP 先预处理出1~9和包括前导0的0的个数:$pre[i]=pre[i-1]*10+10^{digit-1}$ (可以分为首位和其它位来考虑问题) 求$(L,R)$的个数,可以用$(1,R)-(1,L-1)$差分来做 在求$ 阅读全文
posted @ 2018-05-23 22:51 NewErA 阅读(269) 评论(0) 推荐(0)
摘要:Brief Intro: 一棵树,删去若干条边,最大化得到的所有连通块大小的乘积 Algorithm: 这其实算是一类题型吧,虽然这是我做的第一题 树形DP,维护关于子树根节点的信息 此处用dp[i][s],表示以i为根的子树,且i所属连通块的大小为s时的最大值 转移时还是树形DP的常规套路,用类似 阅读全文
posted @ 2018-05-23 22:31 NewErA 阅读(237) 评论(0) 推荐(0)
摘要:Link: 传送门 Algorithm: DP方程:$dp[i]=max(dp[j]+a*(sum[i]-sum[j])^2+b*(sum[i]-sum[j])+c)$ 方程是显然的,但复杂度为$O(N^2)$,需要优化到$O(N)$,这时就需要斜率优化了 推荐博客:https://www.cnbl 阅读全文
posted @ 2018-05-18 22:58 NewErA 阅读(258) 评论(0) 推荐(0)
摘要:Link:https://www.lydsy.com/JudgeOnline/problem.php?id=2964 Algorithm: 一道很新颖的背包问题 此题每个状态要维护的量巨多,而转移方式也巨多,直接写转移方程明显是不现实的 那要考虑的就是能否将这些量分开考虑,它们间是否有明确的约束关系 阅读全文
posted @ 2018-05-17 12:04 NewErA 阅读(412) 评论(2) 推荐(0)
摘要:[Codeforces 8E] Beads 阅读全文
posted @ 2018-05-10 17:12 NewErA 阅读(400) 评论(0) 推荐(0)
摘要:[Codeforces 7E] Defining Macros 阅读全文
posted @ 2018-05-10 17:12 NewErA 阅读(549) 评论(0) 推荐(0)
摘要:[Codeforces 17C] Balance 阅读全文
posted @ 2018-05-10 17:11 NewErA 阅读(1286) 评论(0) 推荐(0)