DP
文章平均质量分 85
nKessi
这个作者很懒,什么都没留下…
展开
-
CF599E Sandy and Nuts
这题挺难的,因为 n≤13n\le 13n≤13,很自然地想到状压(雾)。题目dp 式子令 dp[i][j]dp[i][j]dp[i][j] 表示在状态 iii 下,当前根为 jjj 的方案数,显然,加第二维方便转移。可以写出一下转移方程:dp[i][j]=∑dp[u][t]×dp[u xor i][j]dp[i][j]=\sum dp[u][t]\times dp[u\ xor\ i][j]dp[i][j]=∑dp[u][t]×dp[u xor i][j]原创 2021-04-08 14:05:17 · 141 阅读 · 0 评论 -
AT2000 [AGC002F] Leftmost Ball 排列组合+dp
题意分析令 dp[i][j]dp[i][j]dp[i][j] 为选 iii 个白色球,选 jjj 个其他颜色的方案总数。则 dp[i][j]=dp[i−1][j]+dp[i][j−1]×(n−j+1)×Cn×k−i−(k−1)(j−1)−1k−2(i>=j)dp[i][j]=dp[i-1][j]+dp[i][j-1]\times (n-j+1)\times C_{n\times k-i-(k-1)(j-1)-1}^{k-2}(i>=j)dp[i][j]=dp[i−1][j]+dp[i][原创 2021-03-30 20:07:05 · 105 阅读 · 0 评论 -
浅谈动态dp
(大佬勿喷)(请不要嘲笑我讲得不清楚,因为我太菜了。。。)(请不要嘲笑我看了题解再写题解,因为我实在是太菜了。。。)P4719 [模板]“动态 DP”&动态树分治令 dp[x][0]dp[x][0]dp[x][0] 为以 xxx 为根不选 xxx 的最大权独立集的大小。令 dp[x][1]dp[x][1]dp[x][1] 为以 xxx 为根选 xxx 的最大权独立集的大小。令 yyy 的 xxx 的子节点。这题可以很容易写出dp式:dp[x][0]=∑max(dp[y][0],dp[原创 2021-03-13 22:16:02 · 199 阅读 · 1 评论 -
「CSP-S 2019」 Emiya 家今天的饭 题解
题面样例2 3 1 0 10 1 13分析考虑正着限制最大的数不超过一半不好做,那我们可以反着来。令 dp[i][j][k]dp[i][j][k]dp[i][j][k] 为第 iii 行,此列指定数 pointpointpoint 数量为 jjj 个,选的非指定数的个数为 kkk 的方案数。则一共有三种情况Case 1:Case\ 1:Case 1: dp[i][j][k]=dp[i−1][j][k]dp[i][j][k] = dp[i - 1][j][k]d原创 2021-03-09 13:43:32 · 320 阅读 · 1 评论 -
COCI 2019/2020 Contest #1 T3「Džumbus」树形背包好题
题面样例1 010001100003 21 2 31 21 3323502214 132 3 4 19 20 21 5 22 6 7 23 8 10 141 21 31 42 52 63 73 83 94 108 1110 1310 1212 143454423875分析神仙题,,难啊,,妙啊,,起初我在想怎么分配几个子节点的名额,,结果设个 dp2dp2dp2 就完事了。令 dp[x][k][f]dp[x]原创 2021-02-20 20:16:46 · 301 阅读 · 0 评论 -
[COCI2016-2017#1] Mag 树形dp题解
题意你将获得一棵由无向边连接的树。树上每个节点都有一个魔力值。我们定义,一条路径的魔力值为路径上所有节点魔力值的乘积除以路径上的节点数。例如,若一条路径包含两个魔力值分别为 3,53,53,5 的节点,则这条路径的魔力值为 3×5/2=7.53\times 5/2=7.53×5/2=7.5。请你计算,这棵树上魔力值最小的路径的魔力值。输入格式第一行输入包含整数 n(1≤n≤106)n(1≤n≤10^6)n(1≤n≤106)。表示树中的节点数。 接下来 n−1n−1n−1行中的每一行包含两个整数,原创 2020-11-24 20:31:37 · 170 阅读 · 0 评论 -
[CF1394D] Boboniu and Jianghu 树形DP题解
题目描述输入输出一行一个整数表示答案样例输入1540 10 30 50 202 3 2 3 11 21 32 42 5输出1160输入251000000 1 1 1 11000000 1 1 1 11 21 31 41 5输出24000004输入310510916 760492 684704 32545 484888 933975 116895 77095 127679 989957402815 705067 705067 705067 6原创 2020-10-19 21:10:16 · 181 阅读 · 1 评论 -
[CF908D] New Year and Arbitrary Arrangement 期望DP题解
题面样例输入11 1 1输出12输入23 1 4输出2370000006分析这道题显然是期望DP。由于终止状态有很多,不妨考虑 逆推。定义 dp[i][j][k]dp[i][j][k]dp[i][j][k] 为前面已有 iii 个 ′a′'a'′a′, jjj 个 ′b′'b'′b′, kkk 个 ′ab′'ab'′ab′ 的情况下,再在最后去掉一个字母后, ′ab′'ab'′ab′ 的期望个数。令 Pa=papa+pbPa = {pa \over {pa + pb}}原创 2020-10-06 19:13:34 · 985 阅读 · 2 评论 -
[CF1265E] Beautiful Mirrors 期望DP题解
题意简述GM 有 n(1≤n≤2∗105)n(1≤n≤2*10^5)n(1≤n≤2∗105) 面镜子,他每天问其中一面镜子“GM 帅不帅”,iii 号镜子有 pi%(1≤pi≤100)p_i\%(1≤pi≤100)pi%(1≤pi≤100) 的概率回答帅。第一天,GM 会从 111 号镜子开始问起。如果某天 GM 问了 i(i≠n)i(i≠n)i(i=n)号镜子,并且镜子回答帅,那么第二天 GM 会问 i+1i+1i+1 号镜子。如果某天 GM 问了 nnn 号镜子,并且镜子回答帅,那么 GM 就原创 2020-10-05 07:48:57 · 1140 阅读 · 13 评论 -
TSP问题(旅行商问题) 状压DP求解
题目描述某乡有nnn个村庄(1≤n≤161\leq n \leq 161≤n≤16),有一个售货员,他要到各个村庄去售货,各村庄之间的路程sss(0<s<10000<s<10000<s<1000)是已知的,且AAA村到BBB村与BBB村到AAA村的路大多不同。为了提高效率,他从商店出发到每个村庄一次,然后返回商店所在的村,假设商店所在的村庄为SSS,他不知道选择什么样的路线才能使所走的路程最短。请你帮他选择一条最短的路。输入格式村庄数nnn,商店所在村庄和各村之间的原创 2020-08-01 15:47:53 · 1083 阅读 · 2 评论 -
「CF149D」括号涂色 区间DP好题
题目描述Petya遇到了一个关于括号序列的问题: 给定一个字符串SSS,它代表着正确的括号序列,即 “(((” 与 “)))” 是匹配的。例如:“(())()(())()(())()” 和 “()()()”是正确的,“)())())()”与“(()(()(()”则不是正确的。 在正确的括号序列中,一个左边的括号一定是匹配一个右边的括号(反之亦然)。例如,在下图中,第 333 个括号匹配第 666 个括号,第 444 个括号匹配第 555 个括号。现在你需要对一个正确的括号序列做涂色操作,严格满足以下三个原创 2020-07-19 21:08:09 · 230 阅读 · 1 评论 -
「IOI 1998」Polygon (区间DP题解)
题目翻译“多边形游戏”是一款单人益智游戏。游戏开始时,给定玩家一个具有NNN个顶点NNN条边(编号1∼N1 \sim N1∼N)的多边形,如图1所示,其中N=4N = 4N=4。每个顶点上写有一个整数,每个边上标有一个运算符 +++(加号)或运算符 ×\times×(乘号)。第一步,玩家选择一条边,将它删除。接下来在进行 N−1N-1N−1 步,在每一步中,玩家选择一条边,把这条边以及该边连接的两个顶点用一个新的顶点代替,新顶点上的整数值等于删去的两个顶点上的数按照删去的边上标有的符号进行计算得到原创 2020-06-26 10:26:21 · 533 阅读 · 1 评论 -
能量项链 区间DP题解
题目描述原题来自:NOIP 2006在 Mars 星球上,每个 Mars 人都随身佩带着一串能量项链。在项链上有 NNN 颗能量珠。能量珠是一颗有头标记和尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记必定等于后一颗珠子的头标记。因为只有这样,通过吸盘——Mars 人吸收能量的器官的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可被吸盘吸收的能量。如果一颗能量珠头标记为 mmm,尾标记为 rrr,后一颗能量珠头标记为 rrr,尾标记为 nnn,则聚合后释放出 m×r×原创 2020-06-20 10:59:42 · 313 阅读 · 0 评论 -
前缀单词 DP题解
写在前面这道题是我以前做的,回顾这道题的时候觉得这道题好就写了一篇。题目描述一组单词是安全的,当且仅当不存在一个单词是另一个单词的前缀,这样才能保证数据不容易被误解。现在你手上有一个单词集合SSS,你需要计算有多少个子集是安全的。注意空集永远是安全的。输入格式第一行一个数 n(n<=50)n(n <= 50)n(n<=50),表示集合的大小,以下 nnn 行。每行一个由构成′a′......′z′'a' ......'z'′a′......′z′的字符串。输出格式安全子集的原创 2020-06-19 20:23:31 · 308 阅读 · 0 评论 -
「JOISC 2014 Day4」挂饰(背包DP)题解
题目翻译JOI 君有 nnn 个装在手机上的挂饰,编号为 1…n1 \ldots n1…n。 JOI 君可以将其中一些挂饰装在手机上。JOI 君的挂饰有一些与众不同——其中的一些挂饰附有挂钩,你可以将其他挂饰挂在挂钩上。iii 号挂饰有 AiA_iAi 个挂钩。每个挂件要么直接挂在手机上,要么挂在其他挂件的挂钩上。直接挂在手机上的挂件最多有 111 个。此外,每个挂件有一个安装时会获得的喜悦值,用一个整数来表示。如果 JOI 君很讨厌某个挂饰,那么这个挂饰的喜悦值就是一个负数。JOI 君想要最大化原创 2020-06-16 15:00:52 · 367 阅读 · 0 评论 -
「CEOI2018」Cloud computing DP题解
题目描述Johnny 成立了 Bytecomp,一个提供云计算能力的公司。这样的公司通常拥有许多快速计算机,客户可以在其上进行计算。但是 Johnny 还没有购买任何计算机。于是他前往一家计算机商店,收到了包含全部 nnn 台可用的计算机的清单。每台计算机都可以用三个属性描述:处理器的核心数量 cic_ici,时钟频率 fif_ifi 以及价格 cic_ici。每台计算机包含 cic_ici 个不会互相干扰的核心,所以它们可以被分配给不同的任务。当客户订购资源时,她会指定所需的核心数 Cj原创 2020-06-13 11:51:05 · 468 阅读 · 0 评论 -
《低价购买》题解
题目给定一段时间内股票的每日售价(正16位整数)。你可以选择在任何一天购买股票。每次你选择购买时,当前的股票价格必须严格低于你之前购买股票时的价格。编写一个程序,确定你应该在哪些天购进股票,可以使得你能够购买股票的次数最大化。例如,下面是一个股票价格时间表: Day 1 2 3 4 5 6 7 8 9 10 11 12Price 68 69 54 64 68 64 70 67 78 62 98 87如果每次购买都必须遵循当前股票价格严格低于之前购买股票时的价格,那么投资原创 2020-06-06 20:21:11 · 770 阅读 · 0 评论 -
《三角形牧场》DP题解
题目描述奶牛建筑师Hei想建造围有漂亮白色栅栏的三角形牧场。她拥有N(3≤N≤40)块木板,每块的长度Li(1≤Li≤40)都是整数,她想用所有的木板围成一个三角形使得牧场面积最大。请帮助Hei小姐构造这样的牧场,并计算出这个最大牧场的面积。输入格式第1行:一个整数N。第2…N+1行:每行包含一个整数,即是木板长度。输出格式仅一个整数:最大牧场面积乘以100然后舍尾的结果。如果无法构建,输出-1。样例输入511334样例输出692思路看到这道题目,我的第一感觉是用贪心原创 2020-06-06 18:20:08 · 431 阅读 · 0 评论