随笔分类 - 动态规划
4383 [八省联考 2018] 林克卡特树(WQS 二分+DP)
摘要:P4383 [八省联考 2018] 林克卡特树 给定一颗 个点的树,每条边有边权 ,要求删去其中任意 条边,使得剩余联通块的直径之和最大。求出这个最大值。 。 问题是怎么求直径?!直径
P7137 [THUPC2021 初赛] 切切糕(博弈 概率)
摘要:P7137 [THUPC2021 初赛] 切切糕 -> 双倍经验:Game on Sum (Hard Version) 有 块方蛋糕,绝顶聪明的 Sight 和 Sirrel 决定将每块蛋糕都分成两块各自品尝。Sight 会依次将每块蛋糕分成两块,而 Sirrel 有 次优先选择权。
P3226 [HNOI2012]集合选数(状压 DP)
摘要:P3226 [HNOI2012]集合选数 要求选出集合 满足如果 选择了, 和 都不能选择。 求 的符合要求的子集数量。 。 发现对所有除去 因子后不同的数,他们之间没有关联,完全可以分开处理。 那么
CF1616H Keep XOR Low(Trie 树上 DP)
摘要:CF1616H Keep XOR Low 给你 个整数 和一个整数 。 你需要求出 的一个子集 ,满足 中任意两个不同的元素 ,满足 。
CF1152F Neko Rules the Catniverse(状压 DP)
摘要:CF1152F Neko Rules the Catniverse 给定参数 ,你需要求有多少个大小为 的序列 满足如下三个条件: 任意两个元素其权值不同。 对于任意 满足 有 。 对于任意 满足
CF1463F Max Correct Set(取小样法+状压 DP)
摘要:CF1463F Max Correct Set 要求选出集合 的一个子集 ,满足:如果 并且 ,那么 并且 。求集合 大小的最大值。 $1
CF1342F Make It Ascending(状压+求过程->求结果)
摘要:CF1342F Make It Ascending 给予一个包含 个元素的数组 ,你可以进行以下操作: 选择两个不同的元素 (,) 将 的值加上 ,并移除 中的第 个元素。 求使
CF1007E Mini Metro(DP 化散为整,将状态压缩)
摘要:CF1007E Mini Metro 有 个站台,从左往右编号为 ,每个站台初始时( 时刻)有 个人,从 时刻初开始游戏。 每个时刻,会依次发生如下事件: 你可以选择召唤 辆、一辆或多辆向右行驶的火车(最大载客量为 ),接走
DP 套 DP
摘要:DP 套 DP 学习笔记 大致内容 DP 套 DP 就是将一个简单 DP 的状态压缩起来放到新的 DP 中当做状态进行 DP 的过程。 常用于计算简单 DP 的答案为 的转移方案的数量。 一般都需要 decode 和 recode 操作,这里和 插头DP/轮廓线DP 有异曲同工之妙! 例
数数题(计数类 DP)做题记录
摘要:数数题(计数类 DP)做题记录 CF1657E Star MST 我们称张无向完全图是美丽的当且仅当:所有和 相连的边的边权之和等于这张完全图的最小生成树的边权之和。 完全图点数为 ,边权 ,。 发现所有和 \(1\
插头DP/轮廓线DP
摘要:题解 P5056 【【模板】插头dp】- GNAQ ( 学习资料,大部分贺的,有一些些的改动与自己的补充) 什么是插头 DP 插头 DP 是一类用状压 DP 来处理连通性问题的 DP 方法。 常见的类型:棋盘插头 DP、连通性问题(回路问题,路径问题,生成树问题等)…… 插头
线性DP
摘要:动态规划简介:动态规划是在一个困难的 嵌套决策链 中,决策出最优解。动态规划有 可推导性 ,但同时,动态规划也有 无后效性 ,即 每个当前状态会且仅会决策出下一状态,而不直接对未来的所有状态负责 。 子序列问题 首先声明2个名词: :Longest In
长链剖分
摘要:将较长的链剖出来,通过共用数组的方式来实现优化。 注意!!! 【指针版长链剖分】循环遍历儿子们的答案时, for(int j=0;j<len[ver[i]];j++)... 而不是(因为申请了长度为 的数组!!) for(int j=0;j<=len[ver[i]];j++)...
背包问题 DP
摘要:各种各样的基础背包 0-1 背包 非常朴素,复杂度 void z_o_pack(int c,int v) { for(int i=V;i>=c;i--) dp[i]=max(dp[i],dp[i-c]+v); } 完全背包 复杂度 void comp_pack
状压DP
摘要:状态压缩 是将比较复杂的状态映射成数字后进行 。 难点:设计状态 基本位运算 枚举子集 for(int i=s;i;i=(i-1)&s) O(1) 计算 int 以内每一个数含有多少个 1 预处理出 次
数位DP
摘要:感觉数位 DP 一般都能一眼看出来,而且代码长得也差不多诶! dfs 式数位 DP 模板 ll dfs(ll len,bool Limit,bool zero,ll …… ) // 其他各种条件 { if(len>w) return zero^1; // 注意!!!特判 0 if(!Limit &&