摘要: #include<bits/stdc++.h> using namespace std; using ld = long double; using ll = long long; const int MAXN = 200005; const ll INF = ll(2e18); template< 阅读全文
posted @ 2026-01-19 21:23 Yaosicheng124 阅读(5) 评论(0) 推荐(0)
摘要: const int MAXN = 2000005; struct SAM { int tot, lst, len[MAXN], cnt[MAXN], nxt[MAXN][26], fa[MAXN]; vector<int> e[MAXN]; SAM() { tot = lst = 1; } void 阅读全文
posted @ 2026-01-12 21:31 Yaosicheng124 阅读(3) 评论(0) 推荐(0)
摘要: int n, m, ork[MAXN], rk[MAXN], sa[MAXN], cnt[MAXN], id[MAXN], h[MAXN]; string s; void SA() { m = 26; for(int i = 1; i <= n; ++i) { cnt[rk[i] = s[i] - 阅读全文
posted @ 2026-01-03 10:30 Yaosicheng124 阅读(4) 评论(0) 推荐(0)
摘要: using ll = long long; const int MAXN = 205, MAXM = 5005; template<typename __T> struct network { struct Edge { int v, nxt; __T cap, flow; }e[2 * MAXM] 阅读全文
posted @ 2025-12-13 08:57 Yaosicheng124 阅读(9) 评论(0) 推荐(0)
摘要: 输入输出优化: ios::sync_with_stdio(false), cin.tie(0), cout.tie(0); 快读: int read() { int x = 0, f = 1; char ch = getchar_unlocked(); for(; ch < '0' || ch > 阅读全文
posted @ 2025-02-10 15:23 Yaosicheng124 阅读(39) 评论(1) 推荐(0)
摘要: A. 无限旅馆 题目描述 有一个序列 \(A=[1]\),有三种操作: 令 \(A\rightarrow [x,A_1,A_2,\dots,A_N]\)。 令 \(A\rightarrow [x,A_1,x,A_2,\dots,x,A_N]\)。 求 \(A_x\) 的1值或确定序列长度小于 \(x 阅读全文
posted @ 2024-10-24 20:21 Yaosicheng124 阅读(39) 评论(0) 推荐(0)
摘要: B. 拓扑图计数 题目描述 给定一个排列 \(p\),求有多少个 DAG 的最小字典序拓扑序为 \(p\)。 思路 我们对于每个点 \(p_i\),考虑前面的点连到 \(p_i\) 的方案数。如果 \(i\) 前面没有有大于 \(p_i\) 的就随便选。而如果有,令其为 \(j\),那么 \(j\) 阅读全文
posted @ 2024-10-23 19:58 Yaosicheng124 阅读(23) 评论(0) 推荐(0)
摘要: C. 服务器选址 题目描述 有 \(N\) 个房间,有 \(M\) 条网线连接他们,第 \(i\) 条连接 \(u_i,v_i\),延迟为 \(w_i\)。有 \(p\) 个房间需要网络,你可以在 \(k\) 个房间建立一台服务器,并为 \(p\) 个房间确定一条到某个服务器的线路,其延迟为路径上延 阅读全文
posted @ 2024-10-22 19:56 Yaosicheng124 阅读(27) 评论(0) 推荐(0)
摘要: C. 区间排序 题目描述 给定一个数组 \(A\),你要按照如下方式对 \(A\) 排序: 将 \(A\) 分割成互不相交的子段,且每个元素恰好属于一个子段。 准备一个空数组 \(B\),按顺序把这些子段完整地插入到 \(B\) 中的任意位置。 求至少要分成几个子段。 思路 很明显我们会贪心的尽可能 阅读全文
posted @ 2024-10-21 20:34 Yaosicheng124 阅读(24) 评论(0) 推荐(0)
摘要: CF 1939 B 题目描述 有一些点和 \(N-1\) 次操作,每次会在点 \(u\) 上所有纸条的上方贴一张纸条 \(c_u\),在 \(v\) 上贴 \(c_v\),并在两个点之间建一条边权为 \(w_{u,v}\) 的边,这次操作必须满足 \(c_u+c_v\ge w_{u,v}\)。 现在 阅读全文
posted @ 2024-10-20 21:09 Yaosicheng124 阅读(24) 评论(0) 推荐(0)