随笔分类 -  动态规划------线性DP

摘要:次元传送门:洛谷P4158 思路 f[i][j][k][0/1]表示在坐标为(i,j)的格子 已经涂了k次 (0是此格子涂错 1是此格子涂对)涂对的格子数 显然的是 每次换行都要增加一次次数 那么当j=1时: 当j>1时分成两种情况 当第i格和第i-1格相同 当第i格和第i-1格不同 每次查找都要取 阅读全文
posted @ 2018-11-06 18:37 Nanchtiy 阅读(208) 评论(0) 推荐(0)
摘要:次元传送门:洛谷P1070 思路 一开始以为要用什么玄学优化 没想到O3就可以过了 我们只需要设f[i]为到时间i时的最多金币 需要倒着推回去 即当前值可以从某个点来 那么状态转移方程为: now表示从now这个工厂来 cost表示在now买下了机器人 val为从now走i个单位时间路上可收集的总金 阅读全文
posted @ 2018-11-06 11:30 Nanchtiy 阅读(242) 评论(0) 推荐(0)
摘要:次元传送门:洛谷P2577 思路 首先贪心是必须的 我们能感性地理解出吃饭慢的必须先吃饭(结合一下生活) 因此我们可以先按吃饭时间从大到小排序 然后就能自然地想到用f[i][j][k]表示前i个人在第一个窗口排队用了j时间 在第二个窗口排队用了k时间 然后就自然地炸空间了 所以我们要降维 因为我们可 阅读全文
posted @ 2018-11-06 09:01 Nanchtiy 阅读(148) 评论(0) 推荐(0)
摘要:次元传送门:洛谷P2679 思路 蒟蒻一开始并没有思路而去看了题解 我们发现对于两个字串的位置 我们只需要管他们匹配成功或者匹配失败即可 f[i][j][k] 记录当前 a[i]不论等不等于b[j] 我们可以选用也可以不选用 使用k个子串方案数(因为题目没有要求一定位置相同) r[i][j][k] 阅读全文
posted @ 2018-10-31 10:45 Nanchtiy 阅读(193) 评论(0) 推荐(0)
摘要:次元传送门:洛谷P1514 思路 可以证明如果有解 那么每个蓄水池可以覆盖到的干旱区必定是线段 证明: 举个栗子 8 9 8 7 9 7 6 9 6 明显到不了中间的点 如果不是连续的线段 中间肯定有一个点到不了 无解 那么我们就可以从每个开头城市进行DFS 并且同时递归计算每个点可以到达的最左边和 阅读全文
posted @ 2018-10-30 19:21 Nanchtiy 阅读(160) 评论(0) 推荐(0)
摘要:题目来源:洛谷P1052 思路 一开始觉得是贪心 但是仔细一想不对 是DP 再仔细一看数据不对 有点大 如果直接存下的话 显然会炸 那么就需要考虑离散化 因为一步最大跳10格 那么我们考虑从1到10都跳一遍 所以最大公倍数为2520 那么我们就可以枚举两个石头中间的长度mod 2520 即可缩短总长 阅读全文
posted @ 2018-10-30 13:42 Nanchtiy 阅读(197) 评论(0) 推荐(0)
摘要:题目来源:洛谷P1541 思路 类似背包的题 总之就是四种卡牌取的先后顺序不同导致的最终ans不同 所以我们用一个四维数组每一维分别表示第几种取了几张的最大分数 然后就是简单DP解决 代码 阅读全文
posted @ 2018-10-27 19:51 Nanchtiy 阅读(228) 评论(0) 推荐(0)
摘要:UVA11584 https://www.luogu.org/problemnew/show/UVA11584 暑假开始刷lrj紫/蓝书DP题 这几天做的一道 思路 代码 #include<iostream> #include<cstring> #include<cstdio> #include<a 阅读全文
posted @ 2018-08-05 11:32 Nanchtiy 阅读(129) 评论(0) 推荐(0)
摘要:我丑,话说在前头 题目: https://www.luogu.org/problemnew/show/P3399 一道挺简单的DP 思路不难想 ~~但是蒟蒻总是写错初始化啥的~~ 思路 定义f[i][j]为第i天到达第j个城市 以 天 来进行DP 每一天可以由以下两种方法到达 1. 休息一天 2. 阅读全文
posted @ 2018-07-08 11:14 Nanchtiy 阅读(177) 评论(0) 推荐(0)