动态规划
文章平均质量分 93
WayJasy
叁肆伍叁,伍肆伍物
展开
-
hdu4856 (bfs+状压dp)
http://acm.hdu.edu.cn/showproblem.php?pid=4856题意:一个n∗nn*nn∗n的网格图中有mmm个隧道,你可以从任意起点出发,问走过所有隧道需要的最小步数。思路:先bfsbfsbfs预处理出任意两个点之间的最短路,然后状压dpdp[i][j]表示当前走过的隧道状态为i,最后走到的隧道为j的最小步数dp[i][j]表示当前走过的隧道状态为i,最后走...原创 2019-10-29 12:25:49 · 158 阅读 · 0 评论 -
Codeforces Round #568 (Div. 2) G1(状压dp)
http://codeforces.com/contest/1185/problem/G1题意:n首音乐,每首有val[i]表示长度,g[i]表示种类。要求在刚好满足时间T的情况下,听歌顺序的方案数,(相邻两首歌种类不能相同题意:n首音乐,每首有 val[i]表示长度,g[i]表示种类。要求在刚好满足时间T的情况下,听歌顺序的方案数,(相邻两首歌种类不能相同题意:n首音乐,每首有val[i]表示...原创 2019-06-20 12:14:21 · 126 阅读 · 0 评论 -
BZOJ1668 (dp)
题解:dp[i][j]表示到达(i,j)这个点获得的最大值dp[i][j]表示到达(i,j)这个点获得的最大值dp[i][j]表示到达(i,j)这个点获得的最大值dp[i][j]=max(dp[i][j−1]+val(i,j)),dp[i][j]=max(dp[i−1][j−1]+val(i,j)),dp[i][j]=max(dp[i+1][j−1]+val(i,j)),dp[i][j] = ...原创 2019-07-07 21:09:21 · 171 阅读 · 0 评论 -
树形dp,树上任意两点间距离总和
建完树后,单独计算每条边对答案的贡献。贡献就是这条边被遍历的次数∗这条边的权值贡献就是这条边被遍历的次数*这条边的权值贡献就是这条边被遍历的次数∗这条边的权值对于一条边(如a−b)来说,端点a和b将这个树划分为两个部分,a部分子树上的点如果要连接到b部分,必定要经过a−b这条边,所以某条边被访问次数就是两部分子树端点之积,所以只需要dfs一遍这个树就一样每个点的子节点个数就行了对于一条边(如 ...原创 2019-07-14 16:42:15 · 917 阅读 · 0 评论 -
POJ 2152 Fire (树形dp)
转发一篇国家队论文。树形dp对这题讲的挺清楚的。#include<iostream>#include<algorithm>#include<cstdio>#include<stdio.h>#include<string.h>#include<queue>#include<cmath>#inclu...原创 2019-07-15 16:33:08 · 178 阅读 · 0 评论 -
POJ3162 树形dp+单调队列
难在题意(代码5分钟读题两小时笑死)poj3162题意:n个点构成的一棵树,求出树上每个点能到达的最远距离,这样就有n个距离,然后从这n个距离中找出最长的区间,使得区间内的最大值−-−最小值 <= m题解:最远距离就是求两遍dfsdfsdfs,一遍求xxx节点往儿子方向走的最远距离,一遍求往父亲方向的最远距离。直接树形dp搞一下就好了。。然后求区间维护一个单调递增和一个单调递减的单...原创 2019-07-15 21:32:31 · 128 阅读 · 0 评论 -
J - The more, The Better (树形dp+01背包)
hdu1561题意: nnn个点,每个点有个点权,给出一个有向树,求经过mmm个点获得的最大权值题解:将题目抽象成:背包容量为mmm,每个点权大小为111,价值即为点权,问装满背包的最大价值,就是一个背包问题。不同再与不是无序地拿。因为这棵树是以0为根(无价值)(隐含条件推出),其他结点111~nnn,所以共有n+1n+1n+1个点,所以背包总容量是 m+1m+1m+1。dp[i][j]...原创 2019-07-16 11:20:18 · 87 阅读 · 0 评论 -
CF580 D. Kefa and Dishes (状压DP)
传送门题意nnn个食物中选择mmm个,使得获得的满意度最大。先吃aaa食物再吃bbb食物可以获得额外的满意度。问最后你能获得的最大满意度是多少。思路dp[s][j]dp[s][j]dp[s][j]表示在状态sss下,最后吃的是食物jjj获得的最大满意度。转移方程dp[s][j]=max(dp[s∣(1<<j)][i]+mp[i][j]+w[j])dp[s...原创 2019-08-02 17:21:24 · 149 阅读 · 0 评论 -
BZOJ 1003 最短路dp
https://www.lydsy.com/JudgeOnline/problem.php?id=1003题意:某东西运输货物运输nnn次,每次都从111到mmm。给你一些路线和花费,问nnn天后的最小花费限制条件是再某些天,某些点不能经过更改路线有额外花费 kkk题解: 如果nnn天的路线都不变,那么求一次最短路distdistdist乘上nnn就是答案,但是有些点在某些点无法经过,那么...原创 2019-08-02 14:39:14 · 146 阅读 · 0 评论 -
2019HDU多校第八场 Andy and Maze (colorr coding问题)
hdu6664题意:有nnn个房间,mmm条边,每条边连接两个房间u和vu和vu和v, 从u到vu到vu到v花费ttt. 每个房间有一颗宝石。 现在要求在取得kkk个宝石的前提下使得花费最多。问最大花费(无法取得kkk颗宝石输出impossibleimpossibleimpossible)思路:又学到了新姿势(color coding问题)我们先随机对每个点进行染色(色号为0~k-1) ...原创 2019-08-16 23:23:21 · 347 阅读 · 0 评论 -
牛客2018多校一 E Removal
https://ac.nowcoder.com/acm/contest/139/E题意:从给定n个数的数组中删除m个数,问组成的新数组的种类数题意:从给定n个数的数组中删除m个数,问 组成的新数组的种类数题意:从给定n个数的数组中删除m个数,问组成的新数组的种类数题解:n<=1e5,m<=10,想到dp题解:n<=1e5,m<=10,想到...原创 2019-05-24 00:05:19 · 271 阅读 · 0 评论 -
牛客2018多校二 A-run (dp)
https://ac.nowcoder.com/acm/contest/140/A题意:q次查询,每秒可以行走1米或者每秒跑k米,每次查询L,R,问从L−>R的方案数题意:q次查询,每秒可以行走1米或者每秒跑k米,每次查询L,R,问从L->R的方案数题意:q次查询,每秒可以行走1米或者每秒跑k米,每次查询L,R,问从L−>R的方案数(不能连续两秒都在跑步)题...原创 2019-05-24 13:59:18 · 204 阅读 · 0 评论 -
FJUT2541 dp+dfs
http://www.fjutacm.com/Problem.jsp?pid=2541Seventh大佬是一个爱好学习的学生,他在搞ACM的课余还喜欢搞生物233,这一天他看到了食物链的知识 然后他为了训练同时训练自己的ACM和食物链,给自己的小弟Morning_X出了这么一个题,美名其曰:黑暗森林法则 给出一个N种生物组成的食物网,求食物链的条数。 在这个食物网中,两...原创 2018-11-13 20:31:05 · 239 阅读 · 0 评论 -
ZOJ 3822 概率dp
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3822题意:n*m的矩阵中,每一个格子都可以涂色,当每一行每一列都有某个格子涂色后,停止涂色。问最后每行每列都至少有一个格子涂色的期望是多少。题解:dp[i][j][k]表示 前 i 行 前 j 列 放了 k 个的概率状态转移方程①dp[i][j][k+1] +=...原创 2018-12-03 10:20:46 · 186 阅读 · 0 评论 -
POJ1655 树形dp
题意:给出一棵树,删掉某个节点后会得到若干棵新树。问 删掉哪个节点能使这些新树中的某一棵数节点数最少,求出这个节点编号并且求出节点数。有多个节点则输出编号最小的节点。题解:将1看作根节点,dfs分别求出每个节点的子节点个数。对于u这个节点,他的子树节点个数为 son [v],删除它后新生成的子树节点个数就为 son[v]和 n - son[v] (v表示u的直连子节点)状态转移方程就是...原创 2019-01-21 14:04:07 · 162 阅读 · 0 评论 -
dp之 不同的子序列个数
题目: 给出n个数, a1~an,要求出不同的子序列个数。比如(3 2 4 5 1),其中(3 2) (3 4 5)就是其中的子序列。题解:很容易想到要使用动态规划。设 dp[i] 表示 到 i 为止,不同的子序列个数, dp[i-1] 表示到 i-1 为止,不同的子序列个数那么dp[i] 肯定是由 dp[i-1] 转移得到,那么状态转移方程怎么写呢?试想,对于 a[i...原创 2019-04-06 10:23:31 · 1530 阅读 · 0 评论 -
poj1185 炮兵布阵 状压dp
题目链接:http://poj.org/problem?id=1185题意: n∗mn*mn∗m 的矩阵, 字符PPP表示空地(能放炮台), 字符HHH表示山地(不能放炮台),每个炮台的攻击范围是它上下左右两格之内的所有格子(见题图),问最多能摆几个炮台。题解:状压dp。首先分析,炮台的约束条件:上下左右两格内不能有炮台。HHH表示 1,为不能放的点,PPP表示0,能放的点。将每一行的字符...原创 2019-04-29 22:41:36 · 125 阅读 · 0 评论 -
poj3254/洛谷P1896 状压dp
http://poj.org/problem?id=3254https://www.luogu.org/problemnew/show/P1896把这两题放在一起,解题思路差不多。以POJ的为例题意:给出n∗mn*mn∗m的010101矩阵, 111表示能放数字,000表示不能放数字,每个数字不能相邻,问方案数。题解:状压DP模板题。预处理出每一行的状态,压缩成十进制数。dp[i][j...原创 2019-04-29 23:30:40 · 179 阅读 · 0 评论 -
POJ 3311 状压DP+floyd
http://poj.org/problem?id=3311题意:n∗n的矩阵,d[i][j]表示点i到点j的距离,求从0出发经过所有点后回到0的最短路n*n的矩阵,d[i][j]表示点i到点j的距离,求从0出发经过所有点后回到0的最短路n∗n的矩阵,d[i][j]表示点i到点j的距离,求从0出发经过所有点后回到0的最短路题解:如果暴力枚举,那么需要n!的复杂度,所以想到用dp。如果暴力枚举,...原创 2019-04-30 13:02:59 · 110 阅读 · 0 评论 -
HDU 3001 三进制状压dp
http://acm.hdu.edu.cn/showproblem.php?pid=3001题意:n个点m条边,每条边有个费用,可以选择任意起点和终点,求最多经过每个点两次,并且遍历每个点的最小费用n个点m条边,每条边有个费用,可以选择任意起点和终点,求最多经过每个点两次,并且遍历每个点的最小费用n个点m条边,每条边有个费用,可以选择任意起点和终点,求最多经过每个点两次,并且遍历每个点的最小费...原创 2019-04-30 18:00:49 · 175 阅读 · 0 评论 -
FJUT校赛K题 状压dp+floyd预处理
http://www.fjutacm.com/Contest.jsp?cid=705#P10题意:n个点,m条双向路,其中有P个点有宝石。你要从第1个点出发,收集完所有的宝石,最后从第n个点离开。题意:n个点,m条双向路,其中有P个点有宝石。你要从第1个点出发,收集完所有的宝石,最后从第n个点离开。题意:n个点,m条双向路,其中有P个点有宝石。你要从第1个点出发,收集完所有的宝石,最后从第n个点...原创 2019-05-13 20:45:30 · 227 阅读 · 0 评论 -
SPOJ CATTACK - Counter attack (阅读理解题 DP)
https://www.spoj.com/problems/HACKING/en/CATTACK - Counter attackno tags At our soccer training camp, we have rehearsed a lot of motion sequences. In case we are defending, all players except...原创 2018-09-12 12:07:33 · 231 阅读 · 0 评论