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