DP
文章平均质量分 67
.
SSL_ZZL
是很菜啦
展开
-
【POJ P3311】【状压DP】Hie with the Pie
求个最短路。设 f[i][j] ,i 为所有点选没选(1/0)的状态,j 为最后走的一个点。f[i][k] = min(f[i][k], f[s][j] + a[j][k]);原创 2022-05-04 16:28:17 · 433 阅读 · 0 评论 -
【POJ P2411】【状压DP】Mondriaan‘s Dreamk
设 f[i][j] 表示到第 i 行摆放方式为 j 的方案数原创 2022-05-04 15:15:14 · 265 阅读 · 0 评论 -
【luogu P1441】【状压DP】砝码称重
用二进制枚举出所有的选数方案,bitset记录每个方案能拼出多少数原创 2022-05-04 12:47:12 · 202 阅读 · 0 评论 -
【队内赛 T2】【DP】【矩阵乘法】【快速幂】网格游走
f_{i,j,k}=f_{i-1,j,k} + f_{i-1,j,k-1}+f_{i-1,j,k+1}+f_{i-1,j,k-3}+f_{i-1,j,k+3},用矩阵乘法加速原创 2021-11-06 08:00:21 · 93 阅读 · 0 评论 -
【队内赛 T3】【区间DP】大哥扛纵连
f[i][j] = min(f[i][k - 1] + a[k] * (j - k + 1), f[k + 1][j] + a[k] * (k - i + 1))原创 2021-10-07 15:49:43 · 102 阅读 · 0 评论 -
【Ybtoj 树形DP课堂过关】【例题3】最长距离
设 f[i][0] 为向下走的最远距离,f[now][0] = max(f[now][0], f[a[i].to][0]);设 f[i][2] 为向上再向下的最远距离,f[a[i].to][2] = max(f[a[i].to][2],f[now][0]);设 f[i][1] 为向下走的次远距离,再拿一个数组记录一下每个点的最远距离路径走的是哪个子节点,如果当前点是 最远距离路径 上的点,那就用f[now][1],不然就用f[now][0]原创 2021-08-10 22:02:28 · 1269 阅读 · 1 评论 -
【ybtoj 单调队列课堂过关 例题2】【POJ 1821】【DP】粉刷木板 & Fence
二维DP + 单调队列优化原创 2021-08-08 20:21:13 · 250 阅读 · 0 评论 -
【ybtoj 状压DP课堂过关】【AcWing 91】最短 Hamilton 路径 &【例题2】最短路径
设 f[i][j] 为遍布状态为 i,最后一个遍布的点是 j 的最短路径;f[i][j] = min(f[i][j], f[i\ xor\ (1 << j - 1)][k] + s[k][j])原创 2021-07-30 10:18:53 · 130 阅读 · 0 评论 -
【ybtoj 状压DP课堂过关 例题1】【jzoj 1266】 【luogu P1879】 [USACO06NOV]Corn Fields G & 玉米田 & 种植方案
设 f[i][j] 为第 i 行,种植状态为 j 的方案数,提前统计一下合法的状态原创 2021-07-29 15:14:27 · 225 阅读 · 0 评论 -
【ybtoj 树形DP课堂过关】【例题2】结点覆盖
设f[x][0]为第x个节点放士兵的最小士兵费 f[x][1]为第x个节点不放,被子节点监视的最小士兵费f[x][2]为第x个节点不放,被父节点监视的最小士兵费原创 2021-07-24 11:00:14 · 161 阅读 · 0 评论 -
【luogu UVA10559】 【ybtoj 区间DP课堂过关 例题3】消除木块 & 方块消除 Blocks
偷懒找了博客替代原创 2021-07-11 18:21:07 · 351 阅读 · 0 评论 -
【luogu P1352】【ybtoj 树形DP课堂过关 例题1】树上求和 & 没有上司的舞会
f[当前节点i][0] = f[i][1] + max(f[子节点j][0],f[j][1])当前节点不选,儿子选不选都可以; f[i][1] = f[i][1] + f[j][0]当前节点选中,儿子不可以选原创 2021-07-09 10:16:12 · 143 阅读 · 0 评论 -
【luogu P4170】【ybtoj 区间DP课堂过关 例题2】木板涂色 & [CQOI2007]涂色
设f[i][j]为染出i到j的颜色需要多少次* 如果i和j位置最终要染的颜色相同,f[i][j]=min(f[i][j-1],f[i+1][j])* 如果不一样,需要找一个‘切割点’m,f[i][j]=min(f[i][j],f[i][m]+f[m+1][j])原创 2021-07-08 08:34:49 · 272 阅读 · 0 评论 -
【luogu P1880】【ybtoj 区间DP课堂过关 例题1】石子合并 & [NOI1995] 石子合并
设f[i][j]为把i到j的石子合并需要的费用;在i到j中找一个‘切割点’m,f[i][j] = min(f[i][j],f[i][m]+[m+1][j]),再加上i到j的石子和原创 2021-07-07 21:01:18 · 188 阅读 · 0 评论 -
【ybtoj】【背包问题课堂过关】【DP】【例题3】宝物筛选
模板多重背包原创 2021-06-12 16:16:39 · 179 阅读 · 0 评论 -
【luogu P5020】【ybtoj】【背包问题课堂过关】【DP】【例题2】货币系统 & 【NOIP2018 提高组】货币系统
如果别的数可以组成当前数,那么当前数就不必要;设f[x]为最多用多少个数能组成x,f[x]=max(f[x], f[x - a[i]]+1)...(然后发现就是个完全背包...)原创 2021-06-12 15:35:48 · 236 阅读 · 0 评论 -
【luogu P1048】【ybtoj】【背包问题课堂过关】【DP】【例题1】采药问题 &【NOIP2005 普及组】采药
01背包模板题原创 2021-06-12 14:42:27 · 185 阅读 · 0 评论 -
【ybtoj】【强连通分块】【Tarjan】【DP】【例题1】有向图缩点
设dis[i]为以i为终点的最大值,s[i]为i点的点权值,设有一条边是i->j;dis[j] = max(dis[j], dis[i]+s[j]);优化:Tarjan -》取消了环的无用性,一个强连通分块的值是固定的,先用Tarjan求出来,再用缩出来点进行DP原创 2021-05-06 17:22:09 · 235 阅读 · 0 评论 -
【luogu1879】【状压DP】【USACO06NOV】Corn Fields G
传送门题目描述Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; 1 ≤ N ≤ 12) square parcels. He wants to grow some yummy corn for the cows on a number of squares. Regrettably, some of the squares are infertile and can’t be原创 2020-08-20 20:05:48 · 118 阅读 · 1 评论 -
【2020CSP-J】【DP】方格取数
题目描述设有 n×mn \times mn×m 的方格图,每个方格中都有一个整数。现有一只小熊,想从图的左上角走到右下角,每一步只能向上、向下或向右走一格,并且不能重复经过已经走过的方格,也不能走出边界。小熊会取走所有经过的方格中的整数,求它能取到的整数之和的最大值。输入格式第一行有两个整数 n,mn, mn,m。接下来 nnn 行每行 mmm 个整数,依次代表每个方格中的整数。输出格式一个整数,表示小熊能取到的整数之和的最大值。输入输出样例输入 #13 41 -1 3 22 -1 4原创 2020-11-27 19:33:50 · 1374 阅读 · 0 评论 -
【DP】SMRTFUN
题目描述“又肥又温顺,又大又笨,他们看起来那么傻,而且也不有趣……”这些牛想要证明,他们是既有趣,又聪明的。为了这样做,Bessie组织了一个由牛组成的展览。她有N(1<=N<=100)头牛的情况:聪明程度Si(-1000<=Si<=1000)和有趣程度Fi(-1000<=Fi<=1000)。Bessie必须选择一些牛来参展。牛的总的聪明值TS是所有参展牛的聪明值Si的和,总的有趣值TF是所有参展牛的有趣值Fi的和。Bessie希望能使TS和TF的和最大。但是,她仍原创 2020-10-29 16:47:12 · 140 阅读 · 0 评论 -
【DP】序列
题目描述一个长度为k的整数序列b1,b2,…,bk(1≤b1≤b2≤…≤bk≤N)b_1,b_2,…,b_k(1≤b_1≤b_2≤…≤b_k≤N)b1,b2,…,bk(1≤b1≤b2≤…≤bk≤N)称为“好序列”当且仅当后一个数是前一个数的倍数,即bi+1b_i+1bi+1是bib_ibi的倍数对任意的i(1≤i≤k−1)i(1≤i≤k-1)i(1≤i≤k−1)成立。给定NNN和kkk,请算出有多少个长度为kkk的“好序列”,答案对1000000007取模。输入输入共1行,包含2个用原创 2020-09-12 15:19:53 · 160 阅读 · 0 评论 -
【luogu1052】【离散化】【DP】过河
传送门题目描述在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧。在桥上有一些石子,青蛙很讨厌踩在这些石子上。由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数轴上的一串整点:0,1,…,L0,1,…,L0,1,…,L(其中LLL是桥的长度)。坐标为000的点表示桥的起点,坐标为LLL的点表示桥的终点。青蛙从桥的起点开始,不停的向终点方向跳跃。一次跳跃的距离是SSS到TTT之间的任意正整数(包括S,TS,TS,T)。当青蛙跳到或跳过坐标为LLL的点时,就算青蛙原创 2020-08-20 15:55:17 · 114 阅读 · 0 评论 -
【luogu2622】【状压DP】关灯问题II
传送门题目描述现有n盏灯,以及m个按钮。每个按钮可以同时控制这n盏灯——按下了第i个按钮,对于所有的灯都有一个效果。按下i按钮对于第j盏灯,是下面3中效果之一:如果a[i][j]为1,那么当这盏灯开了的时候,把它关上,否则不管;如果为-1的话,如果这盏灯是关的,那么把它打开,否则也不管;如果是0,无论这灯是否开,都不管。现在这些灯都是开的,给出所有开关对所有灯的控制效果,求问最少要按几下按钮才能全部关掉。输入格式前两行两个数,n m接下来m行,每行n个数,a[i][j]表示第i个开关对第j个灯的原创 2020-08-20 11:12:47 · 158 阅读 · 0 评论 -
【luogu2704】【状压DP】炮兵阵地
传送门题目描述司令部的将军们打算在NM的网格地图上部署他们的炮兵部队。一个NM的地图由N行M列组成,地图的每一格可能是山地(用“H” 表示),也可能是平原(用“P”表示),如下图。在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队);一支炮兵部队在地图上的攻击范围如图中黑色区域所示:如果在地图中的灰色所标识的平原上部署一支炮兵部队,则图中的黑色的网格表示它能够攻击到的区域:沿横向左右各两格,沿纵向上下各两格。图上其它白色网格均攻击不到。从图上可见炮兵的攻击范围不受地形的影响。 现在,原创 2020-08-20 08:15:41 · 111 阅读 · 0 评论 -
【状压DP】车II
Description有一个nm的棋盘(n、m≤80,nm≤80)要在棋盘上放k(k≤20)个棋子,使得任意两个棋子不相邻。求合法的方案总数。Inputn,m,kOutput方案总数Sample Input3 3 2Sample Output24解题思路s[]s[]s[]表示一行棋子的可能状态,numnumnum表示一行棋子有numnumnum个可能状态,c[i]c[i]c[i]表示第iii种状态时有多少个棋子这三个可以预处理dfsdfsdfs求出来设f[i][s[j]][k原创 2020-08-19 14:44:47 · 125 阅读 · 0 评论 -
【状压DP】车
Description在n*n(n≤20)的方格棋盘上放置n个车(可以攻击所在行、列),有些格子不能放,求使它们不能互相攻击的方案总数。Input第一行为棋盘的大小n第二行为障碍的数量m第三行到第m+3为m个障碍Output总数Sample Input421 12 2Sample Output14解题思路状压DP我们可以将DP[]DP[]DP[]设为代表一种状态比如:DP[(5)DP[(5)DP[(5) 10 ]=DP[(0101)]=DP[(0101)]=DP[(原创 2020-08-19 09:57:24 · 137 阅读 · 0 评论 -
【luogu1433】【状压DP】吃奶酪
传送门题目描述房间里放着nnn块奶酪。一只小老鼠要把它们都吃掉,问至少要跑多少距离?老鼠一开始在(0,0)(0,0)(0,0)点处。输入格式第一行有一个整数,表示奶酪的数量 nnn。第222到第(n+1)(n + 1)(n+1)行,每行两个实数,第(i+1)(i + 1)(i+1)行的实数分别表示第iii块奶酪的横纵坐标xi,yix_i, y_ixi,yi。输出格式输出一行一个实数,表示要跑的最少距离,保留222位小数。输入输出样例输入 #141 11 -1-1 1-1 -1原创 2020-08-20 10:14:09 · 127 阅读 · 0 评论 -
【luogu2515】【HAOI2010】【BZOJ2427】【Tarjan】【树形DP】软件安装
传送门题目描述现在我们的手头有NNN个软件,对于一个软件i,它要占用WiW_iWi的磁盘空间,它的价值为ViV_iVi。我们希望从中选择一些软件安装到一台磁盘容量为MMM计算机上,使得这些软件的价值尽可能大(即ViV_iVi的和最大)。但是现在有个问题:软件之间存在依赖关系,即软件iii只有在安装了软件jjj(包括软件j的直接或间接依赖)的情况下才能正确工作(软件iii依赖软件jjj)。幸运的是,一个软件最多依赖另外一个软件。如果一个软件不能正常工作,那么它能够发挥的作用为000。我们现原创 2020-08-15 15:33:36 · 137 阅读 · 0 评论 -
【树形DP】2008GDSOI 鱼肉炸弹
Description. 舒克和贝塔终于下定决心要去营救被关押在众猫聚居的A城中的大米同志。 A城的构造是很奇怪的。A城中的所有N栋建筑沿着一条直线排列,而且没有两栋楼的高度是相同的。而大米同志就被关押在其中的某栋建筑中。每一栋建筑的顶上都是有一些猫们在看守的。如果按照从一端到另一端的顺序将所有的建筑编号为1到N,那么第i栋建筑的高度为Hi,顶上的猫的数量为Ci. 每一只猫不但可以看守住其所在建筑的楼顶,还可以看守住一些比它所在建筑要低的楼的楼顶。前提是没有被其他楼所挡住。A城中的建筑都是很高原创 2020-08-14 21:58:05 · 146 阅读 · 0 评论 -
【DFS】【伪树形DP】Debug
Description. 经过了一整夜的激战,rc的部队终于攻下了虫族的首都Bugzilla。现在,rc决定亲自带领一队突击队员在虫族庞大的地道中寻找他的宿命之敌—Bug。 Bugzilla由N个基地组成。这N个基地被N-1段双向地道连接在一起,每段地道都连接两个基地,并且保证任意两个基地之间都可以通过地道互相到达。Bug就藏在其中的某段地道中。 开始时rc可以乘坐运输机降落在任何一个基地。每次到达一个基地时,rc都可以选择呼叫运输机将他和他的部队运输到任意另一个基地,或者进入与这个基地相邻的原创 2020-08-14 20:33:30 · 143 阅读 · 0 评论 -
【树形DP】将功补过
Description. 作为间谍专家的Elvis Han受窃取X星球军事中心的秘密情报,他已经成功进入军事中心。但是很不幸的是,在他还没有找到任务需要情报的时候就被发现,这时他清楚他不可能完成任务了,不过还有机会将功补过,也就是得到一些不如任务情报有价值的其他情报,如果得到的情报的总价值大于等于任务情报价值,他也不会受到惩罚。很幸运的是他已经得到的军事中心的地图,情报都是隐藏在各个道路上的,但是他只有时间遍历一定数量的路(时间宝贵呀!还要逃跑。。)现在你做为他的助手,给你地图和每个道路情报价值,希望原创 2020-08-13 21:27:53 · 120 阅读 · 0 评论 -
【树形DP】皇宫看守
Description太平王世子事件后,陆小凤成了皇上特聘的御前一品侍卫。皇宫以午门为起点,直到后宫嫔妃们的寝宫,呈一棵树的形状;某些宫殿间可以互相望见。大内保卫森严,三步一岗,五步一哨,每个宫殿都要有人全天候看守,在不同的宫殿安排看守所需的费用不同。可是陆小凤手上的经费不足,无论如何也没法在每个宫殿都安置留守侍卫。帮助陆小凤布置侍卫,在看守全部宫殿的前提下,使得花费的经费最少。Input输入文件中数据表示一棵树,描述如下:第1行 n,表示树中结点的数目。第2行至第n+1行,每行描述每个宫殿原创 2020-08-14 09:30:24 · 324 阅读 · 3 评论 -
【树形DP】战略游戏
Description. Bob喜欢玩电脑游戏,特别是战略游戏。但是他经常无法找到快速玩过游戏的办法。现在他有个问题。他要建立一个古城堡,城堡中的路形成一棵树。他要在这棵树的结点上放置最少数目的士兵,使得这些士兵能了望到所有的路。注意,某个士兵在一个结点上时,与该结点相连的所有边将都可以被了望到。 请你编一程序,给定一树,帮Bob计算出他需要放置最少的士兵。Input. 输入文件中数据表示一棵树,描述如下: 第一行 N,表示树中结点的数目。 第二行至第N+1行,每行描述每个结点信息,原创 2020-08-13 20:47:45 · 193 阅读 · 0 评论 -
【poj2342】【树形DP】最大利润
传送门DescriptionThere is going to be a party to celebrate the 80-th Anniversary of the Ural State University. The University has a hierarchical structure of employees. It means that the supervisor relation forms a tree rooted at the rector V. E. Tretyakov.原创 2020-08-13 20:06:44 · 97 阅读 · 0 评论 -
【luogu2014】【树形DP】选课
传送门题目描述在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学习。现在有 NNN 门功课,每门课有个学分,每门课有一门或没有直接先修课(若课程 a 是课程 b 的先修课即只有学完了课程 a,才能学习课程 b)。一个学生要从这些课程里选择 MMM 门课程学习,问他能获得的最大学分是多少?输入格式第一行有两个整数 NNN , MMM 用空格隔开。( 1≤N≤3001 \leq N \leq 3001≤N≤30原创 2020-08-13 18:58:08 · 81 阅读 · 0 评论 -
【luogu2015】【树形DP】二叉苹果树
传送门题目描述有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的结点)这棵树共有N个结点(叶子点或者树枝分叉点),编号为1-N,树根编号一定是1。我们用一根树枝两端连接的结点的编号来描述一根树枝的位置。下面是一颗有4个树枝的树2 5\ /3 4\ /1现在这颗树枝条太多了,需要剪枝。但是一些树枝上长有苹果。给定需要保留的树枝数量,求出最多能留住多少苹果。输入格式第1行2个数,N和Q(1<=Q<= N,1<N<=100)。N表示树的原创 2020-08-13 13:44:02 · 157 阅读 · 0 评论 -
【luogu1040】【区间DP】加分二叉树
传送门Description设一个n个节点的二叉树tree的中序遍历为(l,2,3,…,n),其中数字1,2,3,…,n为节点编号。每个节点都有一个分数(均为正整数),记第j个节点的分数为di,tree及它的每个子树都有一个加分,任一棵子树subtree(也包含tree本身)的加分计算方法如下:subtree的左子树的加分× subtree的右子树的加分+subtree的根的分数若某个子树为主,规定其加分为1,叶子的加分就是叶节点本身的分数。不考虑它的空子树。试求一棵符合中序遍历为(1,2,3,原创 2020-08-13 10:45:30 · 100 阅读 · 0 评论 -
【DP】【单调队列】Trade
传送门Problem DescriptionRecently, lxhgww is addicted to stock, he finds some regular patterns after a few days’ study.He forecasts the next T days’ stock market. On the i’th day, you can buy one stock with the price APi or sell one stock to get BPi.There原创 2020-08-12 08:04:37 · 154 阅读 · 0 评论 -
【DP】【单调队列】多重背包
传送门Description急!灾区的食物依然短缺!为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买。请问:你用有限的资金最多能采购多少公斤粮食呢?后记:人生是一个充满了变数的生命过程,天灾、人祸、病痛是我们生命历程中不可预知的威胁。月有阴晴圆缺,人有旦夕祸福,未来对于我们而言是一个未知数。那么,我们要做的就应该是珍惜现在,感恩生活——感谢父母,他们给予我们生命,抚养我们成人;原创 2020-08-11 11:13:17 · 100 阅读 · 0 评论