随笔分类 -  dp

摘要:题意:https://www.luogu.com.cn/problem/CF1349F1 首先这个序列中有相同元素,我们考虑逆排列。 把每个数出现的位置依次排列,相同的数字位置递减排列。 容易发现,在a(i+1)>a(i)的位置插入一条分割线即可。 设f(x,y)表示长度x的排列,有y个位置满足p( 阅读全文
posted @ 2022-02-10 13:57 lnzwz 阅读(72) 评论(0) 推荐(0) 编辑
摘要:题意:有n个车站,每站有初始人数,每一天增加ai人,容纳量为bi。每天你可以派任意辆火车,按顺序接走前K个人。求维持m天最少要多少辆。 n,m200 难度较大的DP。 我们发现一旦x车站有人被接走,那么前x-1个车站一定被清空。 利用这个性质可以DP。 设f(x,y,0/1)表示前 阅读全文
posted @ 2022-02-10 13:40 lnzwz 阅读(74) 评论(0) 推荐(0) 编辑
摘要:背包问题是一大类问题。 我们不妨设有n个物品,背包容量为m,每个物品大小为c,个数为d,价值为w。 大写字母表示求和。 01背包,完全背包,分组背包:直接dp即可。时间复杂度O(nm)。 多重背包:单调队列优化或二进制拆分。O(nm)O(nmlogd)。枚举余数进行 阅读全文
posted @ 2021-01-11 21:58 lnzwz 阅读(250) 评论(0) 推荐(0) 编辑
摘要:这题我的方法比较奇怪。 题意: 有k种物品,第i个物品有ai个,权值为2i。 求有多少个y,使得可以选出x组物品,每组的和都为y。 先考虑如何判定一个y是否可行: 从最高位开始,依次求出第i位需要的数目bi。若y的第i位为1,则$b\leftarro 阅读全文
posted @ 2020-10-06 20:36 lnzwz 阅读(339) 评论(0) 推荐(0) 编辑
摘要:题意:有N个数,问有多少个x,(xT),满足这N个数分别+x后,异或和为S。每个数小于2M。 数位DP。 由于是加法,需要记录进位,因此从低位到高位DP。 只要记录下有几个进位,就可以根据这N的数的大小知道究竟是哪几个进位了。 设dp(i,j,0/1)表示考虑到第i位,有j个 阅读全文
posted @ 2020-05-05 11:02 lnzwz 阅读(186) 评论(0) 推荐(1) 编辑
摘要:首先,麻将可以DP。 用DP枚举顺子,因为3个顺子可以变成3个刻子,因此同一位置的顺子数目不会超过2。 这样,在DP时,记录前两个位置选择的顺子个数,即可。状态数为9。 将9个状态的值进行压缩(可以增加顺子和刻子的数量),并记录转移,可以得到麻将自动机。 用这个自动机可以判断是否胡牌等。 在胡牌种类 阅读全文
posted @ 2020-04-06 21:31 lnzwz 阅读(495) 评论(0) 推荐(4) 编辑
摘要:有时,我们会遇到这样的问题: 在一个树上选定一些点,每个点能覆盖一定范围的点……之类 比如: CF70E Information Reform P4845 LJJ爱数树 P3267 [JLOI2016/SHOI2016]侦察守卫 Rbtree 通常,我们有两种做法: 方法一 我们对于每个点,考虑距离 阅读全文
posted @ 2020-01-03 20:39 lnzwz 阅读(309) 评论(0) 推荐(0) 编辑
摘要:题意: 有一棵棵提米树,满足这样的性质: 每个点上长了一定数量的Temmie 薄片,薄片数量记为这个点的权值,这些点被标记为 1 到 n 的整数,其 中 1 号点是树的根,没有孩子的点是树上的叶子。 定义(a,b)是一对相邻的叶子,当且仅当没有其它的叶子节点在 DFS 序上在a,b 之间。 每对 阅读全文
posted @ 2019-10-08 21:21 lnzwz 阅读(374) 评论(0) 推荐(0) 编辑
摘要:坑 阅读全文
posted @ 2019-09-20 20:01 lnzwz 阅读(259) 评论(0) 推荐(0) 编辑
摘要:概念 树形背包,就是说,在树上选一个包含根的连通块,或背包存在依赖关系(选父才能选子),或者需要知道每个点的子树中选了多少…… 通常,我们有两种方法: 一、基于dfs合并: 我们设dp(i,j)表示在i的子节点中选j个的状态。 在转移时,先dfs子节点,然后依次把子节点合并,每次合并2个。 即枚 阅读全文
posted @ 2019-09-14 19:49 lnzwz 阅读(4213) 评论(1) 推荐(10) 编辑
摘要:首先,观察题意,可以发现在最长链下再接一个点,结果一定更优。 也就是说,可以免费选一条最长链,之后正常选。 我们枚举选的最长链,然后算出剩下部分的最优解。 有4部分: 1、链上每个点都选一个。 2、链上剩下的部分。 3、链的左面。 4、链的右面。 1可以直接计算。 那么,我们需要先进行树形背包,然后 阅读全文
posted @ 2019-09-13 22:08 lnzwz 阅读(219) 评论(0) 推荐(0) 编辑
摘要:[toc] 注:部分参考 https://www.luogu.org/blog/gkxx is here/what the hell is ddp 动态DP,就是一个十分简单的DP加了一个修改操作。 先看些例题: 例题1:模拟赛题 【问题描述】 某高校教学楼有 n 层,每一层有 2 个门,每层的两个 阅读全文
posted @ 2019-08-24 21:43 lnzwz 阅读(244) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2019-08-24 21:26 lnzwz 阅读(19) 评论(0) 推荐(0) 编辑
摘要:坑 阅读全文
posted @ 2019-08-21 17:25 lnzwz 阅读(106) 评论(0) 推荐(0) 编辑
摘要:"题目链接" 题意: 外星人的母舰可以看成是一棵 n 个节点、 n−1 条边的无向树,树上的节点用 1,2,⋯,n 编号。JYY 的特工已经装备了隐形模块,可以在外星人母舰中不受限制地活动,可以神不知鬼不觉地在节点上安装监听设备。 如果在节点 u 上安装监听设备,则 JYY 能够监听与 u 直接相邻 阅读全文
posted @ 2019-08-16 21:36 lnzwz 阅读(211) 评论(0) 推荐(0) 编辑
摘要:"题目链接" 题目大意 有一个模P意义下的背包,n个物品,每种有无限个,q个询问,问重量为w的方案。 题解: 首先,先考虑如何判断一些物品能否组成重w的背包。 根据贝祖定理,只要这些数和P的最大公约数是w的约数,就可以。 所以,对于本题,就是判断2n中方案中,有多少种方案使得选择的数和P的最大 阅读全文
posted @ 2019-08-14 21:01 lnzwz 阅读(150) 评论(0) 推荐(0) 编辑
摘要:题意:给你一棵树,要选择若干节点,若一个点i没有选择,则有d(dis(i,j))的代价,其中j被选择。选择一个点代价为k,求最小代价。 首先,考虑这样一个问题: 如果距离a的最近被选点为i,距离b的最近被选点也是i,那么a到b的路径上的点的最近被选点都是i。 考虑一条链:设Ax是链上第x个点,那 阅读全文
posted @ 2019-08-09 22:14 lnzwz 阅读(321) 评论(0) 推荐(1) 编辑
摘要:题目: "[十二省联考2019]皮配" 设S等于各学校人数之和。 首先,有一个很简单的O(nM2)dp:记录当前考虑到哪所学校,以及蓝阵营人数a,鸭派系人数b,最后,只要满足$S C1 include define md 998244353 define max(a,b) (a b?a: 阅读全文
posted @ 2019-08-08 22:03 lnzwz 阅读(298) 评论(0) 推荐(0) 编辑
摘要:题意:有k个障碍,求(0,0)到(n,m)不经过这些障碍的方案数。 直接DP会超时。可以发现,(0,0)到(n,m)不经过障碍的路径条数 为总路径条数 经过障碍的路径条数,即C(n+m,n) 经过障碍的路径条数。 设dp(i)表示从(0,0)到第i个障碍,不经过其它障碍的路径条数。 转移时计算经过障 阅读全文
posted @ 2019-07-25 20:32 lnzwz 阅读(179) 评论(0) 推荐(0) 编辑
摘要:考虑如下dpdp(i)=max/min(A(i)+B(j)+C(i)D(j)) $(j define ll long long ll dp[1000010]; int sz[1000010],S[1000010]; ll X[1000010],Y[1000010],he=0,ta=0; 阅读全文
posted @ 2019-07-25 18:49 lnzwz 阅读(270) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示