上一页 1 2 3 4 5 6 7 8 ··· 10 下一页
摘要: G - Same Sum 神秘题目,感觉是某一类典题。 考虑维护一个区间的怎么匹配,很显然是头尾匹配,否则会形成偏序关系导致大小不等。 题解很神秘的掏出了一个哈希函数 \[F_{+}(l, \, r) = \sum_{i = l}^r x^{a_i} \]\[F_{-}(l, \, r) = \su 阅读全文
posted @ 2025-04-06 21:38 YipChip 阅读(77) 评论(0) 推荐(0)
摘要: E. Porto Vs. Benfica 题意说的很清楚了,这里就不再过多阐述。 有个很直接了当的算法就是,枚举每一个点,并且枚举它相邻的一条边,从 \(1\) 跑到这个点的最短路加上这个点不经过这条边到 \(n\) 的最短路之和。 设 \(dist(u, \, v)\) 表示 \(u, \, v\ 阅读全文
posted @ 2025-03-31 20:44 YipChip 阅读(51) 评论(0) 推荐(0)
摘要: 这东西其实蛮像最小斯坦纳树,不过我们通过状压DP的思想来讲一讲这个题。 形式化题意:考虑一共有 \(n\) 个点,\(m\) 条无向边,你需要从图中选出至多 \(K\) 条闭合路径,使得所有 \(w\) 个关键点都被覆盖,使得最长路径最小。 容易发现 \(n \le 500\),因此我们可以通过 F 阅读全文
posted @ 2025-03-31 14:33 YipChip 阅读(72) 评论(0) 推荐(0)
摘要: 子集遍历 for (int i = 0; i < 1 << n; i ++ ) 这个代码可以从 \(0\) 开始不重复的遍历每一个二进制数,因此时间复杂度 \(O(2^n)\)。 子集枚举 有的时候,我们希望枚举集合 \(i\) 所对应的所有自己,显然我们不可能循环套循环求与的方法做,时间复杂度是 阅读全文
posted @ 2025-03-30 01:08 YipChip 阅读(57) 评论(0) 推荐(0)
摘要: 对正串和反串分别建立 Trie 树,定义 \(dp[i][j]\) 表示正串 Trie 树上编号为 \(i\) 的点匹配反串 Trie 树上编号为 \(j\) 的点所能拼出最长 anti-border 的长度。 如此,从根节点开始搜索,直到无法匹配为止都可以搜,搜到底后回到根节点继续匹配,可以证明, 阅读全文
posted @ 2025-03-27 23:42 YipChip 阅读(28) 评论(0) 推荐(0)
摘要: 利用大写字母较少的性质,记录两个大写字母中间的串是否相等来进行转移。 设 \(f[i][j]\) 表示考虑用到第 \(i\) 个大写字母的时候,\(s\) 匹配到第 \(j\) 个字符时最长匹配数。 当前大写字母 \(t[pos[i]] = s[j]\) 时,显然有 \(f[i][j] = f[i] 阅读全文
posted @ 2025-03-27 23:03 YipChip 阅读(51) 评论(0) 推荐(0)
摘要: 英语不好吃大亏,题意想表达的是对于所有 \(n\) 元排列的 \(w(P)\) 最小,并不是满足 \(p_1 = s, \, p_m = t\) 的排列,因此最小的 \(w(P) = 2\),如果你看假了,这个题分讨没法做。 首先 \(w(P) = 2\) 能在什么条件满足?\(P\) 如果是个模 阅读全文
posted @ 2025-03-27 15:49 YipChip 阅读(16) 评论(0) 推荐(0)
摘要: 31 完全背包求方案数,具体参见代码。 // cpp #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N = 1e5 + 10; int main() { vector<ll> f(201); 阅读全文
posted @ 2025-03-24 21:06 YipChip 阅读(14) 评论(0) 推荐(0)
摘要: 91 这个题的扩展满足 \(N \le 2500\),枚举每个点的位置去计算太慢,我们能否通过枚举一条线来计算答案? 考虑枚举一条斜率为 \(\frac{y}{x}\) 的一条直线,这条直线在至少可以在范围内交出 \((x, \, y)\) 这个点,我们以 \((0, \, 0), \, (x, \ 阅读全文
posted @ 2025-03-18 20:49 YipChip 阅读(49) 评论(0) 推荐(0)
摘要: 81 定义状态转移方程: \[dp[i][j] = \min(dp[i - 1][j], \, dp[i][j - 1]) + a[i][j] \]// cpp #include<bits/stdc++.h> using namespace std; const int N = 1010; int 阅读全文
posted @ 2025-03-18 00:52 YipChip 阅读(30) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 ··· 10 下一页