摘要: 题意: 给定一棵树,每个点有重量 \(w_i\) 和价值 \(v_i\),每条边有长度 \(c_i\)。 定义一个完美的点集 \(S\):\(S\) 连通、\(S\) 总重 \(\le M\) 且 \(S\) 的价值最大。(即在所有连通且总重 \(\le M\) 的集合中,\(S\) 的价值最大) 阅读全文
posted @ 2024-11-22 19:57 FLY_lai 阅读(1) 评论(0) 推荐(0) 编辑
摘要: T1: 题意:至少交换几次相邻字符,使得原串变成相邻串。 结论:每种字符必然前一半在前面,后一半在后面。 把最终的每个字符所到的位置求出来,用 BIT 求逆序对即可。 T2: 原题 总之就是观察到 \(1,2\) 分出的两段必须递减,然后加个调和级数优化 DP 就行了。 T3: 多彩路径 题目描述 阅读全文
posted @ 2024-11-22 18:43 FLY_lai 阅读(1) 评论(0) 推荐(0) 编辑
摘要: T1: 本题中令记号 \(a ^{\wedge} b\) 表示幂运算 \(a^b\) 。一个幂运算代数式可以通过加括号改变所有运算符号的运算顺序,否则从左到右运算,例如 \(a ^{\wedge} ((b ^{\wedge} c)^{\wedge} d) ^{\wedge} e\)表示\(\disp 阅读全文
posted @ 2024-11-22 18:38 FLY_lai 阅读(1) 评论(0) 推荐(0) 编辑
摘要: T1: 对两个字符串\(a,b\),分别选择\(a\)的一个前缀和\(b\)的一个后缀(均允许为空或等于原串),并拼接形成一个新的字符串。 求共有多少种可能得到的本质不同的拼接串。 结论题。对于一个 \(a\) 的前缀 \(a[1\sim i]\),有 \(m+1-cntb[a[i]]\) 个新的串 阅读全文
posted @ 2024-11-22 18:20 FLY_lai 阅读(1) 评论(0) 推荐(0) 编辑
摘要: CF 传送门 AT 传送门 两题主要 Trick 相同。CF 的还多了一个小 trick。 给定一棵根节点为 \(1\) 的二叉树 \(T\),你需要先保留一个包含 \(1\) 号节点的连通块,然后给每个点确定一个权值 \(a_i\),使得对于每个点 \(u\) 都有其权值 \(a_u\) 大于等于 阅读全文
posted @ 2024-11-21 20:04 FLY_lai 阅读(1) 评论(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 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 传送门 这个分数规划非常显然了。问题转化为求最长的 \(len\in [L,U]\) 的链。 长链剖分优化。 \(dp[i][j]\) 表示 \(i\) 子树向下长度为 \(j\) 的链最大权值是多少。答案在合并时更新。用先长子深搜序 + 线段树对长链剖分进行优化。 另外点分治也可以,只能说都很暴力 阅读全文
posted @ 2024-11-19 11:32 FLY_lai 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 给定一棵树和 \(m\) 条路径,每条路径有权值。要求从中选若干条结点不相交的路径使得权值最大。 \(n,m\le 10^5\)。 对于树上路径的 DP 问题,常常把路径的贡献/限制放到它的 LCA 处考虑。 令 \(dp[u]\) 为 \(u\) 的子树内选完全在子树内的路径,结点不相交的最大权值 阅读全文
posted @ 2024-11-18 21:12 FLY_lai 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 传送门 发现 \(nk\) 可行,猜测是 \(O(nk)\) 的 DP。 容易想到设计 \(dp[i][j]\) 表示前 \(i\) 个物品,允许恶魔使用 \(j\) 次魔法的最大价值。 但是这样转移是有后效性的,因为恶魔可能在只考虑前 \(i\) 个物品的时候 与 只考虑前 \(j\) 个物品的时 阅读全文
posted @ 2024-11-18 15:20 FLY_lai 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 福利场。 T1: 题意:\(n\times n\) 棋盘放 \(k\) 个主教。问多少个格子被攻击了。 对每个从对角线维护 \(dp[i]\) 表示这条对角线有多少个不被攻击。可以从两边往递推。 T2: 题意:两人博弈。给定矩阵,先手每次挑一行删掉,后手每次挑一列删掉。先手想最大化最后的数,后手想最 阅读全文
posted @ 2024-11-18 11:21 FLY_lai 阅读(0) 评论(0) 推荐(0) 编辑