随笔分类 -  动态规划

摘要:题意:给定序列,把序列分成 \(k\) 段,使每一段相同元素对数之和最小。\(n\le 10^5,k\le 20,a_i\le n\)。 容易写出转移方程:\(dp[i][j]=\min_{k=1}^{i}(dp[k-1][j-1]+w(k,i))\),其中 \(w(k,i)\) 表示 \(a_k\ 阅读全文
posted @ 2024-12-11 20:11 FLY_lai 阅读(17) 评论(0) 推荐(0)
摘要:给定长度 \(n\) 的序列 \(a_1\sim a_n\)。 问题 1:给定固定的 \(k\),选 \(k\) 个不相交的子段,和最大是多少。 问题 2:支持两种操作,全局加和查询区间最大子段和,允许离线。 问题 3:对 \(k=1\sim n\),求选 \(k\) 个不相交的子段,和最大分别是多 阅读全文
posted @ 2024-11-28 22:03 FLY_lai 阅读(141) 评论(0) 推荐(0)
摘要:题意: 给定一棵树,每个点有重量 \(w_i\) 和价值 \(v_i\),每条边有长度 \(c_i\)。 定义一个完美的点集 \(S\):\(S\) 连通、\(S\) 总重 \(\le M\) 且 \(S\) 的价值最大。(即在所有连通且总重 \(\le M\) 的集合中,\(S\) 的价值最大) 阅读全文
posted @ 2024-11-22 19:57 FLY_lai 阅读(17) 评论(0) 推荐(0)
摘要:CF 传送门 AT 传送门 两题主要 Trick 相同。CF 的还多了一个小 trick。 给定一棵根节点为 \(1\) 的二叉树 \(T\),你需要先保留一个包含 \(1\) 号节点的连通块,然后给每个点确定一个权值 \(a_i\),使得对于每个点 \(u\) 都有其权值 \(a_u\) 大于等于 阅读全文
posted @ 2024-11-21 20:04 FLY_lai 阅读(13) 评论(0) 推荐(0)
摘要:题意: 给定一棵树,第 \(i\) 个点的赋值范围是 \([L_i,R_i]\)。计数:选择一条路径,将路径上的点赋值,使得极差 \(\le K\);并求出每种这样赋值方案的权值和。 \(n\le 200\),其余 \(\le 10^9\)。 看见极差,考虑枚举最小值 \(x\),然后统计 \([x 阅读全文
posted @ 2024-11-20 21:54 FLY_lai 阅读(24) 评论(0) 推荐(0)
摘要:传送门 这个分数规划非常显然了。问题转化为求最长的 \(len\in [L,U]\) 的链。 长链剖分优化。 \(dp[i][j]\) 表示 \(i\) 子树向下长度为 \(j\) 的链最大权值是多少。答案在合并时更新。用先长子深搜序 + 线段树对长链剖分进行优化。 另外点分治也可以,只能说都很暴力 阅读全文
posted @ 2024-11-19 11:32 FLY_lai 阅读(8) 评论(0) 推荐(0)
摘要:给定一棵树和 \(m\) 条路径,每条路径有权值。要求从中选若干条结点不相交的路径使得权值最大。 \(n,m\le 10^5\)。 对于树上路径的 DP 问题,常常把路径的贡献/限制放到它的 LCA 处考虑。 令 \(dp[u]\) 为 \(u\) 的子树内选完全在子树内的路径,结点不相交的最大权值 阅读全文
posted @ 2024-11-18 21:12 FLY_lai 阅读(60) 评论(0) 推荐(0)
摘要:传送门 发现 \(nk\) 可行,猜测是 \(O(nk)\) 的 DP。 容易想到设计 \(dp[i][j]\) 表示前 \(i\) 个物品,允许恶魔使用 \(j\) 次魔法的最大价值。 但是这样转移是有后效性的,因为恶魔可能在只考虑前 \(i\) 个物品的时候 与 只考虑前 \(j\) 个物品的时 阅读全文
posted @ 2024-11-18 15:20 FLY_lai 阅读(12) 评论(0) 推荐(0)
摘要:论战捆竹竿 题意:给定字符串 \(s\),计数 "串 \(t\) 的长度" 可能的种数有多少种,使得 \(t\) 能被 \(s\) 作为印章印出来,且 \(|t|\le w\)。\(n=|s|\le 5\times 10^5\),\(n\le w\le 10^{18}\)。 第一步: 求出 \(s\ 阅读全文
posted @ 2024-11-09 18:20 FLY_lai 阅读(20) 评论(0) 推荐(0)
摘要:传送门 夏天近了,又到了恋爱的季节,小Q家门前的苹果树上结满了红红圆圆的苹果。 这株苹果树是一个有着\(n\)个结点的有根树,其中结点被依次编号为\(1\)至\(n\)。\(1\)号结点为根,其余每一个结点的父结点一定是某个编号较小的结点。每一个结点上都有一些苹果,第\(i\)个结点上有\(a_i 阅读全文
posted @ 2024-11-02 09:49 FLY_lai 阅读(80) 评论(0) 推荐(0)
摘要:传送门 小 \(C\) 有一棵 \(n\) 个结点的有根树,根是 \(1\) 号结点,且每个结点最多有两个子结点。 定义结点 \(x\) 的权值为: 1.若 \(x\) 没有子结点,那么它的权值会在输入里给出,保证这类点中每个结点的权值互不相同。 2.若 \(x\) 有子结点,那么它的权值有 \(p 阅读全文
posted @ 2024-11-02 08:14 FLY_lai 阅读(21) 评论(0) 推荐(0)
摘要:不愧是 ZJOI。 题意:有 \(n\) 种麻将牌,每种四张。定义 "胡牌" 为小鸡胡或普通七小对。给定初始 \(13\) 张牌,将剩下 \(4n-13\) 张牌随机排列,问期望摸多少张牌能胡(假设采用最优决策)。\(n\le 100\)。 先考虑怎么判定是否胡牌。 \(cnt[i]\) 表示前 \ 阅读全文
posted @ 2024-10-19 16:58 FLY_lai 阅读(20) 评论(0) 推荐(0)
摘要:T1: break 忘了写,于是 -20pts 离散化,若一个段被 \(\ge 3\) 个线段覆盖,无解;否则答案为 \(2^{cnt}\),\(cnt\) 为连通块个数。 这题卡常,要用 sort 离散化。 T2: 推式子,注意到轮数 \(\le \log n\) 即可。 T3: 对于同色限制区间 阅读全文
posted @ 2024-10-12 20:26 FLY_lai 阅读(32) 评论(0) 推荐(0)
摘要:为什么会有傻子每次计算都初始化线段树一次 …… st = SegmentTree(n) 改成 st.mdf(1, n + 1, -1) 就 += 25pts 了…… T1 大力分讨题。 首先容易观察到,当 \(|a|=|b|\) 且 \(a,b\) 都不含 \(*\) 的时候,\(T\) 不含 \( 阅读全文
posted @ 2024-10-05 22:15 FLY_lai 阅读(32) 评论(0) 推荐(0)
摘要:把 DP 过程当作状态进行 DP。DP of DP 一般数据范围不会太大,而且一般是计数题。 DP of DP 的本质是自动机上 DP。 大致上可以写作 \(dp[\dots][S]\) 表示外层 DP 进行到 \(\dots\) 阶段,内层 DP 对应到 \(S\) 阶段。 例一:Hero mee 阅读全文
posted @ 2024-10-04 22:13 FLY_lai 阅读(295) 评论(0) 推荐(1)
摘要:【前置知识】 convex 与 concave:这是对于数组的概念。类比函数,下凸就是 convex,上凸就是 concave。 【<min,+>卷积问题】 考虑两个数组 \(a_{1\sim n},b_{1\sim m}\),定义它们的<min,+>卷积结果 \(c\): \(|c|=n+m\)。 阅读全文
posted @ 2024-10-03 20:31 FLY_lai 阅读(517) 评论(0) 推荐(0)
摘要:Jumping Sequences 把移动的上下左右改成左上、左下、右上、右下(坐标轴旋转 \(45\)°)。则最终目的地是 \((A+B,A-B)\)。 (以前移动的方式是 \((\pm d_i,0),(0,\pm d_i)\)。现在每次移动的方式是 \((\pm d_i,\pm d_i)\)) 阅读全文
posted @ 2024-10-03 10:22 FLY_lai 阅读(26) 评论(0) 推荐(0)
摘要:打的算不错的了。就是 C 的部分分没时间打满了。 警示:调试的时候切忌过分相信自己的某一部分代码!!!请把任何一个函数都注释一遍检查错误源头。 T1 签到题。记录 \(pfx[],suf[]\) 表示从前往后尽量少走、从后往前尽量多走,会走到哪里。 然后枚举 \(i=0\sim m\),看 \(pf 阅读全文
posted @ 2024-09-24 16:28 FLY_lai 阅读(54) 评论(0) 推荐(0)
摘要:当你填表法推了半年没推出来,为什么不试试刷表法呢? 洛谷传送门 在一行中有 $n $个格子,从左往右编号为 \(1\) 到 \(n\)。 有 \(2\) 颗棋子,一开始分别位于位置\(A\)和\(B\)。按顺序给出\(Q\)个要求,每个要求是如下形式: 给出一个位置 \(x_i\),要求将两个棋子中 阅读全文
posted @ 2024-09-18 14:49 FLY_lai 阅读(11) 评论(0) 推荐(0)
摘要:传送门 给定一棵树,带边权。\(1\) 的代价可以使某边权 \(\pm 1\)。求最小代价使从根到叶子距离都相等。 \(n\le 3\times 10^5,w_e\le 10^9\)。 \(f_u(x)\) 表示 \(u\) 的子树内把 \(u\) 到叶子的距离都变成 \(x\) 的最小代价。\(F 阅读全文
posted @ 2024-09-17 20:28 FLY_lai 阅读(15) 评论(0) 推荐(0)