
DP
文章平均质量分 63
ssllyr
锦瑟无端五十弦,一弦一柱思华年。
展开
-
【洛谷P3177】树上染色【树形DP(背包)】
有一棵点数为n的树,树边有边权。给你一个在0∼n之内的正整数k,你要在这棵树中选择k个点,将其染成黑色,并将其他的n−k个点染成白色。将所有点染色后,你会获得黑点两两之间的距离加上白点两两之间的距离的和的收益。问收益最大值是多少。原创 2023-08-18 14:39:26 · 377 阅读 · 0 评论 -
【CF1763E】Node Pairs 【DP】
DP原创 2023-08-15 11:25:09 · 84 阅读 · 0 评论 -
【CF1767C】Count Binary Strings【DP】
DP,字符串原创 2023-08-15 09:24:37 · 124 阅读 · 0 评论 -
【洛谷P2657】Windy数【数位DP】
数位DP原创 2023-08-15 08:34:39 · 72 阅读 · 0 评论 -
【hdu2089】不要62【暴力】【数位DP】
。原创 2023-08-15 08:24:37 · 50 阅读 · 0 评论 -
【洛谷P1896】互不侵犯【状压DP】
状压原创 2023-08-12 08:24:05 · 100 阅读 · 0 评论 -
【CF1808C】Unlucky Numbers【类 数位DP】
。原创 2023-08-12 08:12:18 · 98 阅读 · 0 评论 -
【poj1947】Rebuilding Roads【背包树形DP】
背包+树形DP原创 2023-08-09 11:22:56 · 110 阅读 · 0 评论 -
【CF1839D】Ball Sorting【DP】
DP原创 2023-08-06 17:50:48 · 87 阅读 · 0 评论 -
【HDU1054】 Strategic Game【树形DP】【二分图匹配】
DP原创 2023-08-04 19:39:54 · 59 阅读 · 0 评论 -
【CF1635D】Infinite Set【DP】【位运算】
DP+位运算原创 2023-08-01 20:22:34 · 94 阅读 · 0 评论 -
【洛谷P2258】子矩阵【DFS+DP】
但是这次有点不太一样的理解,由于子矩阵的定义,直接枚举肯定超时,所以就考虑行和列枚举其中一个,然后另一个跑DP。具体怎么枚举呢,这里的枚举用搜索实现,可以得出所有行或者列的组合,这次我就枚举了列的组合。本题任务:给定一个 n 行 m 列的正整数矩阵,请你从这个矩阵中选出一个 r 行 c 列的子矩阵,使得这个子矩阵的分值最小,并输出这个分值。不难发现,枚举列,按行DP,枚举行,按列DP都可以得出答案,恰好就是我之前和现在两种不同的做法。的最小分数,枚举一个k,表示上一行选的是第k行,k的范围显然是。原创 2022-08-21 19:20:12 · 295 阅读 · 0 评论 -
【洛谷P5365】英雄联盟【多重背包】
多重背包原创 2022-08-21 08:37:18 · 237 阅读 · 0 评论 -
【洛谷P2072】宗|教问题【DP】
DP,贪心原创 2022-08-18 22:11:30 · 100 阅读 · 0 评论 -
【2017特长生】摆渡线路【区间DP】
区间DP原创 2022-08-18 09:24:02 · 76 阅读 · 0 评论 -
【gzoj】鸡蛋的硬度【基础概率DP】
概率DP原创 2022-08-16 21:47:53 · 199 阅读 · 0 评论 -
【洛谷P1171】售货员的难题【状压DP】
状压DP原创 2022-08-16 14:37:14 · 232 阅读 · 0 评论 -
【洛谷P1622】释放囚犯【区间DP】
区间DP原创 2022-08-16 11:21:05 · 250 阅读 · 0 评论 -
【洛谷P1854,gzoj1086】花店柜台布置【DP】
某花店现有F束花,每一束花的品种都不一样,同时至少有同样数量的花瓶,被按顺序摆成一行,花瓶的位置是固定的,从左到右按1到V顺序编号,V是花瓶的数目。例如,假设杜鹃花的标识数为1,秋海棠的标识数为2,康乃馨的标识数为3,所有花束在放入花瓶时必须保持其标识数的顺序,即杜鹃花必须放在秋海棠左边的花瓶中,秋海棠必须放在康乃馨左边的花瓶中。每个花瓶的形状和颜色也不相同,因此,当各个花瓶中放入不同的花束时,会产生不同的美学效果,并以美学值(一个整数)来表示,空置花瓶的美学值为0。老师:DP先搞个二维的。......原创 2022-08-13 08:19:08 · 140 阅读 · 0 评论 -
【gzoj1081】k上升段【DP】
这题直接暴力肯定是不行的,全排列那么多。其实关键就是要找到前面与后面的关系。对于i的排列,新加进来一个i+1,其实只有两种情况:增加了一个段或者没有增加段。,增加段数的情况得放在段中,想想能放几个位置:如果有一个段,就有。如果新加进来的没有增加段数,那就是从。个段中位置,每增加一个段都会“破坏”一个段中,所以一共有。个段中,特别的,可以放在数列的最前面,所以方案数就是。没有增加段数只能添加在每一段的段末,所以方案数就是。过来的,如果增加段数,那就是从。两种情况之和就是转移方程。对于边界条件,显然有。...原创 2022-08-13 08:07:19 · 99 阅读 · 0 评论 -
【gzoj8.12综合三】银河摆渡【二分+DP】
二分原创 2022-08-12 22:02:13 · 177 阅读 · 0 评论 -
【8.8gzoj综合】排序集合【递推】
递推,树思想原创 2022-08-09 22:10:23 · 183 阅读 · 0 评论 -
【洛谷P1754】球迷购票问题【DP】
DP原创 2022-08-06 08:21:20 · 247 阅读 · 0 评论 -
【8.24模拟赛T3.1327】Mobile Service【DP】
哦对,在gmoj上是没有多组数据的。题目链接:https://www.luogu.com.cn/problem/SP703,https://gmoj.net/senior/#main/show/1327分析我一开始居然想到一个一个贪心去了四维DP比较好想:f[i][x][y][z]f[i][x][y][z]f[i][x][y][z]表示当前第i个任务,第一个员工在xxx,第二个在yyy,第三个在zzz但是时间空间都不行,怎么办?然后可以发现这个题的一个性质,每次做任务后一定有一个员工停在p..原创 2021-08-24 19:11:25 · 181 阅读 · 0 评论 -
【洛谷P2943】【8.23模拟赛T4.1299】[USACO09MAR]Cleaning Up G【优化DP】
题目链接:https://www.luogu.com.cn/problem/P2943,https://gmoj.net/senior/#main/show/1299分析上代码#include<iostream>#include<cstdio>#include<algorithm>#include<cmath>using namespace std;const int N=40001;int n,m;int a[N],f[N],las.原创 2021-08-24 16:20:22 · 134 阅读 · 0 评论 -
【8.23模拟赛T3.1298】 [USACO09OPEN]Grazing2 S【DP】
题目链接:https://www.luogu.com.cn/problem/P2954,https://gmoj.net/senior/#main/show/1298分析上代码#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int n,s,a[2001],f[2001][2001];int main().原创 2021-08-24 15:55:32 · 95 阅读 · 0 评论 -
【ybtoj 5.2 区间DP课堂过关】A.石子合并
题目链接:http://noip.ybtoj.com.cn/contest/52/problem/1分析区间DP经典题,枚举区间长度,端点,就可以得到另一个端点,然后枚举区间分割点,就可以转移。所有大区间的答案都依赖于小区间,要先枚举长度。这个环怎么处理?倍长之后正常做。转移:f[l][r]=max/min(f[l][r],f[l][k]+f[k+1][r])f[l][r]=max/min(f[l][r],f[l][k]+f[k+1][r])f[l][r]=max/min(f[l][r],f[.原创 2021-08-23 22:02:02 · 107 阅读 · 0 评论 -
【ybtoj 5.1 背包问题课堂过关】E.金明的预算方案【有依赖背包】
题目链接:http://noip.ybtoj.com.cn/contest/50/problem/5分析分开主件和附件,因为最多有两个附件,所以只有5种情况:啥都不买只买主件主件+附件1主件+附件2主件+附件1+附件2找几个数组分别存主件,附件1,附件2。转移:枚举每件物品,枚举背包容量。方程:f[j]=max(f[j],f[j−v[i]]+v[i]∗q[i]);f[j]=max(f[j],f[j-v[i]]+v[i]*q[i]);f[j]=max(f[j],f[j−v[i]]+v.原创 2021-08-21 11:59:05 · 145 阅读 · 0 评论 -
【ybtoj 5.1 背包问题课堂过关】C.宝物筛选【完全背包】
题目链接:http://noip.ybtoj.com.cn/contest/50/problem/3分析这道题本意是要打一个二进制拆分优化的完全背包的,但是我把完全背包交上去加了个break小优化就过了。洛谷上面最后一个点死活过不了,打个表爆切。上代码#include<iostream>#include<cstdio>#include<algorithm>using namespace std;int n,m,d[100001],v[100001],.原创 2021-08-21 11:44:34 · 87 阅读 · 0 评论 -
【8.17模拟赛T2】【洛谷P7296】Uddered but not Herd G【状压DP】
题目链接:https://www.luogu.com.cn/problem/P7296分析上代码#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cstdlib>using namespace std;int n;int f[1<<20],a[100001],b[100001],c[1001][1001].原创 2021-08-18 18:41:18 · 146 阅读 · 0 评论 -
【ybtoj 5.1 背包问题课堂过关】B. 货币系统【完全背包】
题目链接:http://noip.ybtoj.com.cn/contest/50/problem/2分析把货币系统(n,a)(n,a)(n,a)看做集合A,(m,b)(m,b)(m,b)看做集合B,那么A集合不能表示出来的数必然在B集合内。考虑完全背包,从小到大排序,看看能否被之前的数表示出来。其实最新的等价最小系统就是原来的数量减去所有能被原系统内的数表示出来的数。例如:6=3+3,19=10+3+3+3。转移方程:f[j]=f[j]∣(f[j−a[i]])f[j]=f[j]|(f[j-a[..原创 2021-08-17 16:02:03 · 84 阅读 · 0 评论 -
【ybtoj 5.1 背包问题课堂过关】A. 采药问题【01背包】
题目链接:http://noip.ybtoj.com.cn/contest/50/problem/1分析01背包模板题。设f[i]f[i]f[i]为背包容量为iii时的最大价值。从大到小枚举背包的空间,如果够放iii物品就判断一下是否最大,如果是当前的最大就放进去,后面会继续更新。答案是f[t]f[t]f[t]上代码#include<iostream>#include<cstdio>#include<algorithm>using namespace.原创 2021-08-17 15:37:50 · 110 阅读 · 0 评论 -
【8.16模拟赛.7236】【洛谷P7416】 [USACO21FEB] Modern Art 3 G【区间DP】
题目链接:https://www.luogu.com.cn/problem/P7414分析区间DP经典题,设f[i][j]f[i][j]f[i][j]为涂完i−ji-ji−j所需要的最小涂色次数。先考虑边界:f[i][i]=1,f[i][j]=inf(i!=j)f[i][i]=1,f[i][j]=inf(i!=j)f[i][i]=1,f[i][j]=inf(i!=j)然后枚举区间长度和起点,算出终点,如果两端是相等的,颜色可以延伸过去一次涂完,不需要两次,这里就是f[i][j]=min(f[i+1.原创 2021-08-17 15:26:30 · 187 阅读 · 0 评论 -
【gmoj4756】【8.12模拟赛T1】幻象【期望DP】
题目链接:幻象同洛谷Let’s Play Osu!分析设p[i]p[i]p[i]为第iii秒幻象的持续时间的期望p[i]=(p[i−1]+1)∗a[i]/100 p[i]=(p[i-1] + 1)*a[i]/100p[i]=(p[i−1]+1)∗a[i]/100设f[i]f[i]f[i]为前iii秒的答案。f[i]=f[i−1]+((p[i−1]+1)2–p[i−1]2)∗a[i]/100f[i]=f[i-1]+((p[i-1] + 1)^2–p[i-1]^2)*a[i]/100f[i]=...原创 2021-08-12 22:01:26 · 75 阅读 · 0 评论 -
【gmoj4743】【8.11模拟赛T1】积木【状压DP/暴搜】
题目链接:积木分析这题数据也太水了吧我喜欢可以直接暴力搜索每一个积木的每一个顺序的每一种放置方法。阶乘级别的复杂度,居然能过就离谱。正解是状压DP。f[i][j][k]f[i][j][k]f[i][j][k]当中:iii表示积木选择的状态,每一位的0/1表示这个积木有没有被选中,jjj表示最上面的那个积木,k表示哪一种放法(0,1,2)。枚举l,gl,gl,g可以得出转移:f[i|(1<<(l-1))][l][g]=max(f[i|(1<<(l-1))][l]...原创 2021-08-11 19:10:54 · 100 阅读 · 0 评论 -
【gmoj3056】【8.10模拟赛T4】数字【数位DP】【容斥】
题目链接:数字分析前两个基本不用管,只要把枚举的边界处理一下就行。主要是第三点。ANS=前n位之和与后n位之和相等的方案数+奇数位之和与偶数位之和相等的方案数-前n位之和与后n位之和相等且奇数位之和与偶数位之和相等的方案数。重点是最后一个要满足2个条件的方案数怎么求,其实也很简单:因为前n位之和=后n位之和,奇数位之和=偶数位之和所以前n位中奇数位之和=后n位中偶数位之和 且 前n位中偶数位之和=后n位中奇数位之和具体实现:最终答案:上代码#include<i..原创 2021-08-10 21:31:56 · 87 阅读 · 0 评论 -
【洛谷P4284】【7.19模拟赛T4】概率充电器【期望DP】
题目链接:概率充电器分析需要把期望变成每个点对答案的贡献,被点亮为1,没点亮为0.所以就只跟概率有关了。设f[x]f[x]f[x]表示x这个点不连通的概率考虑x的儿子对它的贡献f[x]=(1−q[x])∗∏(1−w+f[y]∗w)f[x]=(1-q[x])*\prod (1-w+f[y]*w)f[x]=(1−q[x])∗∏(1−w+f[y]∗w)其中y为x的儿子,w为边连通的概率。现在考虑y的父亲x对y的贡献,我们设s为x除去y这个点连通的概率s=1−f[x]/(1−w+f[y]∗w)s=1..原创 2021-07-21 20:44:16 · 99 阅读 · 0 评论 -
【gmoj7199】【7.19模拟赛】玉米田加强版【状压DP】
分析第一眼好像做过这道题,去洛谷看看原来是弱化版。。。这个卡了空间 要用滚动数组 还要卡常状压dp + 滚动数组 + 卡常是过不了的 ,还有最后三个点很狗但是加上数据编程——打表,就非常nice。正解: 轮廓线dp + 滚动数组 + 卡常假设dpdpdp到了点xxx 因为xxx的后面和下面都还没有更新那xxx的取舍取决于 它的左边和上边然后取出upupup和leftleftleft的状态 处理不合法的状态 再转移k为轮廓线的状态 方程:f[i][k]+=f[i-1][k]; /...原创 2021-07-20 16:02:35 · 99 阅读 · 0 评论 -
【gmoj1340】【7.17提高B组模拟赛T3】周长【状压DP】
分析其实第一眼看到这个数据范围的时候已经知道这道题正解是状压DP,然而当时并不会打。所以就打了个全排列暴搜还打挂了导致JZ第一次0分设f[i][j]f[i][j]f[i][j]表示状态为iii ,iii为0/1二进制数表示哪一位 没用过/用过 的状态,jjj表示现在最右的农田为第jjj个农田。枚举上一个状态iii,上一个状态最右的农田jjj,当前状态最右的农田kkk。令t=i∣(1<<(k−1))t=i∣(1<<(k−1))t=i∣(1<<(k−1))则有...原创 2021-07-18 21:44:43 · 91 阅读 · 0 评论 -
【gmoj3528】【7.16提高B组模拟赛T2】图书馆【DP】
题目大意给定n个点,m条边,每次只能从小的点走向大的点,问走过路径的最小方差。分析看到方差就先想到方差公式。但是我们要对这个原始公式变形:首先给出方差定义:σ2=1n∑i=1n(xi−xˉ)2 \sigma^2=\frac{1}{n}\sum_{i=1}^n(x_i-\bar x)^2σ2=n1i=1∑n(xi−xˉ)2xˉ\bar xxˉ 是平均数,xˉ=1n∑i=1nxi\bar x=\frac{1}{n}\sum_{i=1}^nx_ixˉ=n1i=1∑nxi然后考虑化...原创 2021-07-17 08:10:42 · 112 阅读 · 1 评论