随笔分类 -  题解

摘要:Placing Squares 题解 拍死脑袋也想不出来啊。 敲黑板: \(x^2\) 的组合意义,就是在一个长为 \(x\) 的区间内放小球(一个黑色,一个白色,可以重叠)的方案数。 这样题目就转化为了在一个序列内插板,每两个板之间放两个小球的方案数。 这么转化可以将难以处理的平方代价转化掉,可容 阅读全文
posted @ 2025-11-12 15:03 GuoSN0410 阅读(13) 评论(0) 推荐(0)
摘要:T2 爆搜 注意,string 只能与 string 运算,无法和 char 运算;访问 string 某一位时则是 char T5 数位 DP。 转化题意:若 \(x\) 是 \(B\) 的倍数,则 \(x\mod B = 0\)。 先设计 DP 状态,设 \(f_{i,j}\) 表示看到第 \( 阅读全文
posted @ 2025-11-07 20:34 GuoSN0410 阅读(11) 评论(0) 推荐(0)
摘要:CF803F 场上死磕无法战胜,原来是个绿题吗哈哈。 考虑到跟序列的顺序无关,直接在值域上做。我们设 \(f_i\) 表示 \(\gcd = i\) 的方案数。那么有 \[f_i = 2^{g_i} - 1 - \sum_{i | d \land i \ne d} f_d \]\(g_i\) 是原序 阅读全文
posted @ 2025-09-12 16:31 GuoSN0410 阅读(12) 评论(0) 推荐(0)
摘要:树上染色 题解 容易想到设 \(f_{u,i}\) 表示子树内染了 \(i\) 个黑点的最大答案,但是发现对子树外节点的贡献不好统计,所以将这条边对子树外节点的贡献 提前 计算进去。 DP 转移: \(f_{u,i}=\max(f_{u,i-j}+f_{v,j}+w_{u,v}\times j\ti 阅读全文
posted @ 2025-08-22 12:09 GuoSN0410 阅读(12) 评论(0) 推荐(0)
摘要:题解 注意到是组合数对一个质数 \(k\) 取余的问题,想到卢卡斯定理,即 \(C_{x}^y = C_{x\mod k}^{y\mod k} \times C_{x/ k}^{y/k} \mod k\)。 发现如果将 \(x,y\) 进行 \(k\) 进制拆分: \(x = a_0 + a_1 \ 阅读全文
posted @ 2025-08-22 09:00 GuoSN0410 阅读(15) 评论(0) 推荐(0)
摘要:【刷题笔记】p10013 前置芝士 将 \(k\) 个数插入到 \(m\) 个数中,方案数为 \(\binom{m + k}{k}\),相当于从 \(m + k\) 个数中拿 \(k\) 个。 一棵树的拓扑序个数是 \(n!\over \prod sz_u\)。对于一棵树有 \(n!\) 种的排列, 阅读全文
posted @ 2025-08-19 09:35 GuoSN0410 阅读(9) 评论(0) 推荐(0)
摘要:T2 题意太长了,不放了 题解 状压 DP。 首先注意到,重复 一个数据一定是不优的,所以可以直接 不用管 是否选了重复的,因为一定会有更优的方案把它覆盖掉。 设状态为 \(f_{s_1,s_2,s_3}\),分别表示: 每个程序是否到达 非 OK 的最终状态 每个程序是否满足时间限制 每个程序是否 阅读全文
posted @ 2025-08-16 11:44 GuoSN0410 阅读(12) 评论(0) 推荐(0)
摘要:T3 有一个 \(n\) 点 \(m\) 边的简单无向图,每个点有颜色 \(c_i\) 和点权 。 经过某个点时需要花费 \(w_i\) 的能量放下一个标记,若 \(c_i\ne c_j\) 则在 \(i\) 处可远程回收 \(j\) 处的标记,要求每刻能量非负,求对任意两点 \(x\) 到 \(y 阅读全文
posted @ 2025-08-14 10:14 GuoSN0410 阅读(9) 评论(0) 推荐(0)
摘要:T1 你有一个字符串 s,其中有一些方括号和圆括号,以及小写字母 \(a\) 到 \(z\)。 从内到外,从左到右,去掉括号,每去掉一个方括号就把括号所包含的区间内的字符串反转(reverse),去掉一个圆括号就将括号所包含的区间内的所有字符 \(+1\)(\(a\) 到 \(b\),\(b\) 到 阅读全文
posted @ 2025-08-12 11:49 GuoSN0410 阅读(10) 评论(0) 推荐(0)
摘要:P2824 [HEOI2016/TJOI2016] 排序 题解 首先考虑对于一个 \(01\) 序列怎么做:假设要对 \([l,r]\) 进行升序排序,设其中有 \(cnt_1\) 个 \(1\) ,则要把 \([r - cnt_1 + 1, r]\) 置为 \(1\),其余置为 \(0\),降序排 阅读全文
posted @ 2025-07-31 10:26 GuoSN0410 阅读(19) 评论(0) 推荐(0)
摘要:【刷题笔记】P4197 Peaks 题解 想要判断只经过困难值 \(\le x\) 的边能否从 \(u\) 到 \(v\),只需要判断 \(u\to v\) 路径上 最小的最大值 和 \(x\) 的关系,这东西可以在 最小生成树 上维护。 将所有询问的 \(x\) 从小到大排序,这样每次只需要加入 阅读全文
posted @ 2025-07-29 13:16 GuoSN0410 阅读(7) 评论(0) 推荐(0)
摘要:CF354D Transferring Pyramid 题解 首先可以将一整个金子塔向左平移,形成一个 直角三角形。 其次考虑若只使用第一种操作,则总花费为 \(3m\),若使用第二种操作,三角形高度为 \(h\),那么单次花费 阅读全文
posted @ 2025-07-15 11:59 GuoSN0410 阅读(6) 评论(0) 推荐(0)
摘要:【刷题笔记】CF1082F Speed Dial 题解 首先根据题目意思,按键绑定的号码一定是某几个 字符串的前缀。 所以我们可以先建一棵 Trie,Trie 的点权是以当前这个 节点为结尾的电话号码所被拨打得次数。 于是问题转化为了从 Trie 上选取 \(k\) 个点,使得 \(\sum w_i 阅读全文
posted @ 2025-07-13 10:57 GuoSN0410 阅读(10) 评论(0) 推荐(0)
摘要:【刷题笔记】CF1768F Wonderful Jump 题解 首先考虑 \(O(n^2)\) 的暴力 DP。 设 \(f_i\) 表示跳到 \(i\) 的最小花费,显然 \(f_i = \max(f_j + (j-i)^2)\times \min(a_j...a_i)\),接下来要优化他。 性质1 阅读全文
posted @ 2025-07-13 09:31 GuoSN0410 阅读(24) 评论(0) 推荐(0)
摘要:【刷题笔记】AT_agc060 Large Heap 题解 首先注意到题目给出的排列,十分像一个二叉堆,并且构成这个堆的树,还是棵 满二叉树。 其次再注意到点 \(u\) 和点 \(v\),分别位于这棵树的 左链 和 右链 上。 考虑,如果将这棵树的所有节点按照权值排序,就相当于对整棵树进行了一次 阅读全文
posted @ 2025-07-12 17:44 GuoSN0410 阅读(20) 评论(0) 推荐(0)
摘要:【刷题笔记】p9197 摩天大楼 题意 将互不相同的 \(N\) 个整数 \(A_1,A_2,⋯,A_N\) 按照一定顺序排列。假设排列为 \(f_1,f_2,⋯,f_N\),要求:\(|f1−f2|+∣f2−f3∣+⋯+∣f_{N-1}−f_N∣\le L\)。 满足题意的排列的方案数对 \(10 阅读全文
posted @ 2025-07-10 12:01 GuoSN0410 阅读(15) 评论(0) 推荐(0)
摘要:思路 首先注意到要求矩阵和,想到的肯定是二位前缀和。 设 \(S_{i,j}\) 表示的是以 \((i,j)\) 为右下角,长为 \(A\),宽为 \(B\) 的矩阵和。 设 \(s_{i,j}\) 表示的是以 \((i,j)\) 为右下角,长为 \(C\),宽为 \(D\) 的矩阵和。 然后再来考 阅读全文
posted @ 2025-06-09 21:53 GuoSN0410 阅读(19) 评论(0) 推荐(0)
摘要:思路 树形 DP 很好注意到这是一道树形 DP 题目。 可以很好想到设 \(f_{i,j}\) 表示当前结点 \(i\) 的权值为 \(j\) 时的方案数。 转移方程:\(f_{i,j}=\sum f_{v, k} * [ok_{i,j}=1]\) 但是这么做为什么是错的呢?因为每种权值有一个数量限 阅读全文
posted @ 2025-05-28 17:04 GuoSN0410 阅读(24) 评论(0) 推荐(0)
摘要:思路 首先注意到一个性质: 选出来的最优路径一定在直径上 证明:我不会,大概理解一下吧。QWQ 考虑如何计算最大距离: 对于在直径上,且不在枢纽上的点: 它的距离就是他与枢纽一个端点距离(大概理解一下)。 对于不在直径上,且与直径交点不在所选路径上的: 不会对最大距离产生贡献。 对于不在直径上,且与 阅读全文
posted @ 2025-05-22 15:18 GuoSN0410 阅读(20) 评论(0) 推荐(0)
摘要:思路 首先对于 \(k=1\) 的情况: 可以发现在树的直径两端连一条边,一定是最优的。设直径长度为 \(L\),总共有 \(n\) 个点,易得新的花费为 \(2*(n-1)-L+1\),可以理解为用 \(1\) 条边代替了 \(L\) 条边。 再看 \(k=2\) 的情况: 可以仿照第一种情况,在 阅读全文
posted @ 2025-05-20 22:33 GuoSN0410 阅读(34) 评论(0) 推荐(0)