DP
DP
SSL_GYX
座右铭:言念君子,温其如玉。
展开
-
【集训Day3】section
【集训Day3T2】section原创 2022-07-17 21:56:57 · 167 阅读 · 0 评论 -
【集训Day2】Sculpture
【集训Day2 T2】Sculpture原创 2022-07-17 21:05:46 · 94 阅读 · 0 评论 -
【ybt】【状压DP】【例题4】炮兵阵地
炮兵阵地LinkLinkLink解题思路设 fi,j,kf_{i,j,k}fi,j,k 表示第 iii 行,第 iii 行状态为 jjj ,第 i−1i-1i−1 行状态为 kkk 的情况最大值。枚举 lll 表示第 n−2n-2n−2 行的状态,在这 333 行状态都不重叠的前提下,状态转移方程如下:fi,j,k=max(fi,k,l)f_{i,j,k}=\max(f_{i,k,l})fi,j,k=max(fi,k,l)code#include<iostream>#原创 2021-12-25 15:34:52 · 353 阅读 · 0 评论 -
【ybt】【状压DP】【例题2】最短路径
最短路径LinkLinkLink解题思路考虑状压 DPDPDP。设 fi,jf_{i,j}fi,j 为已经走过的状态为 iii ,当前节点为 jjj 的最小值。每次枚举一条路径的起点和终点进行转移,转移方程为:fi,j=min(fi−(1<<j−1),k+ak,j)f_{i,j}=\min(f_{i-(1<<j-1),k}+a_{k,j})fi,j=min(fi−(1<<j−1),k+ak,j)code#include<iostream&原创 2021-12-18 09:40:18 · 121 阅读 · 0 评论 -
【ybt】【状压DP】【例题1】种植方案
种植方案LinkLinkLink解题思路状压 DPDPDP 模板题。code#include<iostream>#include<cstdio>using namespace std;const int mod=1e8;int n,m;int a[20];int q[1<<12],tot;int f[20][1<<12];int main(){ cin>>n>>m; for(int i=1;i&原创 2021-12-17 21:23:10 · 316 阅读 · 0 评论 -
【ybt】【树形DP】【例题2】结点覆盖
结点覆盖LinkLinkLink解题思路这是一道树形DP。设 fi,0f_{i,0}fi,0 表示以 iii 为根的子树全部被覆盖,iii 的父亲被选的最小值。fi,1f_{i,1}fi,1 表示 iii 被选的最小值。fi,2f_{i,2}fi,2 表示 iii 的儿子被选在最小值。code#include<iostream>#include<cstdio>using namespace std;int n;int a[2010];int f[原创 2021-12-04 15:18:41 · 423 阅读 · 0 评论 -
【ybt】【树形DP例1】树上求和
树上求和Link解题思路模板题。设 fi,0f_{i,0}fi,0 表示第 iii 个点不选的最大值, fi,1f_{i,1}fi,1 表示第 iii 个点选的最大值。dfsdfsdfs 跑图,回溯求和。code#include<iostream>#include<cstdio>using namespace std;int n;int a[6010];int f[6010][2];int hd[6010],tot;struct abc{ i原创 2021-11-27 10:02:48 · 108 阅读 · 0 评论 -
【ybt】【动态规划 区间 课过 例2】木板涂色
木板涂色题目链接:YbtOJ/Luogu解题思路区间 DPDPDP 。设 fl,rf_{l,r}fl,r 表示将区间 [l,r][l,r][l,r] 涂成目标形式的最小次数,转移方程如下:fl,r={minl<k≤r(fl,k−1+fk,r)(s[l]≠s[r])min(fl,r−1,fl+1,r)(s[l]=s[r]) f_{l,r}=\left\{\begin{array}{l}min_{l<k\leq r}(f_{l,k-1}+f_{k,r})&(s[l]\ne原创 2021-07-09 10:49:03 · 182 阅读 · 0 评论 -
【ybt】【动态规划 区间 课过 例1】石子合并
石子合并题目链接:YbtOJ/Luogu解题思路区间DP模板题。前缀和优化。code#include<iostream>#include<cstring> #include<cstdio>using namespace std;int n;int a[210];int s[210];int f[210][210];int main(){ cin>>n; for(int i=1;i<=n;i++) scanf("原创 2021-07-09 09:26:31 · 129 阅读 · 0 评论 -
【ybt】【动态规划 背包 课过 例3】宝物筛选
宝物筛选题目链接:YbtOJYbtOJYbtOJPSPSPS:这不是 LuoguLuoguLuogu 上的那道,是数据减弱版。解题思路多重背包模板。code#include<iostream>#include<cstring>#include<cstdio>using namespace std;int n,W;int f[100010];int v[101000],w[110000],m[110000];int main(){ ci原创 2021-07-08 21:18:29 · 107 阅读 · 0 评论 -
【洛谷_P1040】加分二叉树
加分二叉树题目描述Description设一个n个节点的二叉树tree的中序遍历为(l,2,3,…,n),其中数字1,2,3,…,n为节点编号。每个节点都有一个分数(均为正整数),记第j个节点的分数为di,tree及它的每个子树都有一个加分,任一棵子树subtree(也包含tree本身)的加分计算方法如下:subtree的左子树的加分× subtree的右子树的加分+subtree的根的分数若某个子树为主,规定其加分为1,叶子的加分就是叶节点本身的分数。不考虑它的空子树。试求一棵符合中序遍历原创 2020-08-13 15:06:55 · 91 阅读 · 0 评论 -
【洛谷_P2515】软件安装
软件安装Description现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi。我们希望从中选择一些软件安装到一台磁盘容量为M计算机上,使得这些软件的价值尽可能大(即Vi的和最大)。但是现在有个问题:软件之间存在依赖关系,即软件i只有在安装了软件j(包括软件j的直接或间接依赖)的情况下才能正确工作(软件i依赖软件j)。幸运的是,一个软件最多依赖另外一个软件。如果一个软件不能正常工作,那么它能够发挥的作用为0。我们现在知道了软件之间的依赖关系:软件i依赖软件Di。现在原创 2020-08-15 09:59:32 · 235 阅读 · 0 评论 -
【SSL_1607】没有上司的晚会
没有上司的晚会DescriptionUral大学有N个职员,编号为1~N。他们有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司。每个职员有一个快乐指数。现在有个周年庆宴会,要求与会职员的快乐指数最大。但是,没有职员愿和直接上司一起与会。Input第一行一个整数N。(1<=N<=6000)接下来N行,第i+1行表示i号职员的快乐指数Ri。(-128<=Ri<=127)接下来N-1行,每行输入一对整数L,K。表示K是L的直接上司。最后一行输原创 2020-08-12 21:57:58 · 425 阅读 · 0 评论 -
【SSL_P1608】皇宫看守
皇宫看守Description太平王世子事件后,陆小凤成了皇上特聘的御前一品侍卫。皇宫以午门为起点,直到后宫嫔妃们的寝宫,呈一棵树的形状;某些宫殿间可以互相望见。大内保卫森严,三步一岗,五步一哨,每个宫殿都要有人全天候看守,在不同的宫殿安排看守所需的费用不同。可是陆小凤手上的经费不足,无论如何也没法在每个宫殿都安置留守侍卫。Input帮助陆小凤布置侍卫,在看守全部宫殿的前提下,使得花费的经费最少。Output输入文件中数据表示一棵树,描述如下:第1行 n,表示树中结点的数目。第2行至第原创 2020-08-14 15:05:41 · 131 阅读 · 0 评论 -
【POJ_2342】Anniversary party
Anniversary party详见:没有上司的晚会原创 2020-08-14 07:37:36 · 114 阅读 · 0 评论 -
【洛谷_P2014】选课
选课Description大学里实行学分。每门课程都有一定的学分,学生只要选修了这门课并考核通过就能获得相应的学分。学生最后的学分是他选修的各门课的学分的总和。每个学生都要选择规定数量的课程。其中有些课程可以直接选修,有些课程需要一定的基础知识,必须在选了其它的一些课程的基础上才能选修。例如,《数据结构》必须在选修了《高级语言程序设计》之后才能选修。我们称《高级语言程序设计》是《数据结构》的先修课。每门课的直接先修课最多只有一门。两门课也可能存在相同的先修课。为便于表述每门课都有一个课号,课号依次为原创 2020-08-13 21:59:56 · 525 阅读 · 0 评论 -
【SSL_P2119】电子眼
电子眼Description中山市石一个环境优美、气候宜人的小城市。因为城市的交通并不繁忙,市内的道路网很稀疏。准确地说,中山市有N-1条马路和N个路口,每条马路连接两个路口,每两个路口之间最多只有一条马路。作为一条交通网络,显然每两个路口之间都是可达的。为了更好地管理中山市的交通,市长决定在一些路口加装电子眼,用来随时监视路面情况。这些装在路口的电子眼能够监视所有连接到这个路口的马路。现在市长想知道最少需要在多少个路口安装电子眼才能监视所有的马路。市长已经把所有的路口都编上了1~N的号码。给你中山原创 2020-08-13 08:28:48 · 151 阅读 · 0 评论 -
【洛谷_P2015】二叉苹果树
二叉苹果树题目描述有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的结点)这棵树共有N个结点(叶子点或者树枝分叉点),编号为1-N,树根编号一定是1。我们用一根树枝两端连接的结点的编号来描述一根树枝的位置。下面是一颗有4个树枝的树2 5 \ / 3 4 \ / 1现在这颗树枝条太多了,需要剪枝。但是一些树枝上长有苹果。给定需要保留的树枝数量,求出最多能留住多少苹果。输入格式第1行2个数,N和Q(1<=Q<= N,1<N&原创 2020-08-13 20:48:31 · 215 阅读 · 0 评论 -
【SSL_1371】鱼肉炸弹
鱼肉炸弹Description舒克和贝塔终于下定决心要去营救被关押在众猫聚居的A城中的大米同志。A城的构造是很奇怪的。A城中的所有N栋建筑沿着一条直线排列,而且没有两栋楼的高度是相同的。而大米同志就被关押在其中的某栋建筑中。每一栋建筑的顶上都是有一些猫们在看守的。如果按照从一端到另一端的顺序将所有的建筑编号为1到N,那么第i栋建筑的高度为Hi,顶上的猫的数量为Ci.每一只猫不但可以看守住其所在建筑的楼顶,还可以看守住一些比它所在建筑要低的楼的楼顶。前提是没有被其他楼所挡住。A城中的建筑都是很高的,原创 2020-08-15 14:49:36 · 231 阅读 · 1 评论 -
【洛谷_P2016】战略游戏
战略游戏DescriptionBob喜欢玩电脑游戏,特别是战略游戏。但是他经常无法找到快速玩过游戏的办法。现在他有个问题。他要建立一个古城堡,城堡中的路形成一棵树。他要在这棵树的结点上放置最少数目的士兵,使得这些士兵能了望到所有的路。注意,某个士兵在一个结点上时,与该结点相连的所有边将都可以被了望到。 请你编一程序,给定一树,帮Bob计算出他需要放置最少的士兵。Input输入文件中数据表示一棵树,描述如下: 第一行 N,表示树中结点的数目。 第二行至第N+1行,每行描述每个结点信息,依原创 2020-08-14 09:10:51 · 254 阅读 · 1 评论 -
【SSL_1565】将功补过
将功补过Description作为间谍专家的Elvis Han受窃取X星球军事中心的秘密情报,他已经成功进入军事中心。但是很不幸的是,在他还没有找到任务需要情报的时候就被发现,这时他清楚他不可能完成任务了,不过还有机会将功补过,也就是得到一些不如任务情报有价值的其他情报,如果得到的情报的总价值大于等于任务情报价值,他也不会受到惩罚。很幸运的是他已经得到的军事中心的地图,情报都是隐藏在各个道路上的,但是他只有时间遍历一定数量的路(时间宝贵呀!还要逃跑。。)现在你做为他的助手,给你地图和每个道路情报价值,原创 2020-08-14 10:33:13 · 183 阅读 · 1 评论 -
【ybt】【动态规划 背包 课过 例2】货币系统
货币系统题目链接:YbtOJ/Luogu解题思路依题意得,我们只需要舍去可以被其他数字表示出来的数即可。code#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>using namespace std;int T;int n,maxn,ans;int a[100010];int f[100010];int main(){ cin&g原创 2021-07-08 10:45:56 · 161 阅读 · 0 评论 -
【ybt】【动态规划 背包 课过 例1】采药问题
采药问题题目链接:YbtOJ/Luogu解题思路01背包模板题。code#include<iostream>#include<cstdio>using namespace std;int t,n;int f[110][1010];int w[110],v[110];int main(){ cin>>t>>n; for(int i=1;i<=n;i++) scanf("%d%d",&w[i],&v[i原创 2021-07-08 10:31:37 · 97 阅读 · 0 评论 -
【洛谷P1434】滑雪
滑雪题目链接:滑雪题目描述Michael喜欢滑雪。这并不奇怪,因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道在一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子:1 2 3 4 516 17 18 19 615 24 ...原创 2019-12-06 20:17:29 · 143 阅读 · 0 评论