It's my first time to write a blog in EnglishChinglish, so it may be full of mistakes in grammar. Problem: Codeforces866E Analysis: First, we determine \(S\geq T\), then \(S-T=A\), where \(A\) is the known number, and \(S\) is shuffled from \(T\). Th…
题目:http://acm.acmcoder.com/showproblem.php?pid=2089 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer).杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众.不吉利的数字为所有含有4或62的号码.例如:62315 73418 88914都属于不吉利号码.但是,61152虽然含有6和2,但不是62连号,所以不属于不吉利数字之列.你的任务…
题目大意: 给树上每一个结点赋值(值为正整数),要求相邻结点的权值不能相同.问树上最小权值和.$n\leq 10000$. ------------------------- 设$f[i][j]$表示以$i$为根的子树,根权值为$j$时子树的最小权值和. 朴素的$DP$是$n^3$的.这里我们有个结论:树上用到的颜色不超过$\log_{2} n$个.下面给出证明(orz大佬): 假设我们找到点$i$为树的重心.根据重心的性质,它的最大子树的结点数不超过$\frac{n}{2}$.考虑一种最差的情…
题意: 给定一个有n个节点的无根树,有两种装置A和B,每种都有无限多个.在某个节点X使用A装置需要C1的花费,并且此时与节点X相连的边都被覆盖.在某个节点X使用B装置需要C2的花费,并且此时与节点X相连的边以及与X相连的点相连的边都被覆盖.求覆盖所有边的最小花费. 分析: 首先无根树可以先dfs确定根.考虑选择装置A和装置B的影响. 装置A只会影响节点u连出去的边.而装置B还会影响u相连的点相连的边,也就是说与节点u距离为2的边也会被影响. 也就是说,对于边(u,fa[u]),如果fa[fa[u…
题意: 你经营者一直棒球队.在接下来的g+10天中有g(3<=g<=200)场比赛,其中每天最多一场比赛.你已经分析出你的n(5<=n<=100)个投手中每个人对阵所有m个对手的胜率(一个n*m矩阵),要求给出作战计划(即每天使用哪个投手),使得总胜场数的期望值最大.注意,一个投手在上场一次后至少要休息4天. 分析: 如果这题直接记录前4天中每天上场的投手编号1~n,时间和空间都无法承受.但是,不记录又不行.因为规定一个投手在上场一次后至少要休息4天,也就是说记录前4天的作战计划是…
点此看题面 大致题意: 在一棵树中有\(N\)条边连接\(N+1\)个节点,现在已知这棵树上的\(M\)个节点,要求封住最少的节点,使这\(M\)个节点中的任意一个节点无法到达叶子节点,若能办到输出最少封住的节点数,若不能输出\(-1\). 树形DP 这道题目的正解是树形\(DP\)(\(hl666\)大佬说用\(O(n^2m)\)的最小割也可以过这道题,不过这篇博客并不讨论这种做法,他能做出来是因为他是常数之神). 树形\(DP\),一般都将状态由子节点向父节点转移,这题当然也不例外. 我们可…
题目链接 正式迈入了数位DP的大门…… 心情激动 (看我立个flag,我如果专攻数位DP的话,到wc之前就会有秒数位DP蓝题的能力) 数位DP讲解链接 讲的非常详细,良心博客.比我写的博客加在一起还要良心. 设f[i][j]表示第i位,上一位是j的方案数. 按照那篇博客的指示枚举即可,注意判断前导零. #include<cstdio> #include<cstdlib> #include<cctype> #include<algorithm> #includ…
题目链接 树形DP水题,设f[x][0]是以x为根的子树,内部只有半条链(就是链的两个端点一个在子树里,一个不在子树里)的最大值,f[x][1]是以x为根的子树,内部有一条完整的链(选两个内部的子树作为链的左端点和右端点)的最大值. 于是可以很轻松的得出DP方程: 一开始f[x][0]=f[x][1]=1 然后dfs,深搜x的子树,记录一下x有多少子节点的同时记录子树的最大半链和次大半链(用来在转移的时候凑成x子树内的整个链).最后注意细节乱搞搞就行了. 本题不考思维但是比较考验考虑细节的能力.…
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1040 这道题,很明显根据仇恨关系构造出的图形是一堆环套树.如果是普通的树,就可以马上裸树形dp了,于是我们先解决这个环的问题.所以要先把环找出来. 找出环后,假如断掉一条环边,环套树就变成了普通的树,而我们可以直接对这棵树进行dp,但是要控制被断掉的边的两端不被选择. 对断边形成的树进行dp的时候,我们的dp方程是这样表示的:f[i][0/1]表示结点i不选/选. 假设断掉的两条边两端…
题意:给定一个只由左右括号组成的字符串s,问长度为2*n的包含它的合法括号序列方案数,答案对1e9+7取模 1≤n≤100,1≤|s|≤200 思路:暴力预处理出s的每个前缀[0..i]后加左右括号分别能与原序列最长匹配到的位置,这一步也可以用KMP 设dp[i][j][k][l]为当前到第i位,未匹配的左括号数为j,当前最长能匹配到s的前k位,是否存在过全匹配s的方案数 有两种转移,第i+1位填左括号或者右括号 答案即为 simga dp[n<<1][0][i][1] (i=0..len(s…