摘要: 我太菜了。 你考虑一个DP: \[dp_1=a_{1,1}\times dp_1+a_{1,2}\times dp_2+\dots+a_{1,n}\times dp_n\\ dp_2=a_{2,1}\times dp_1+a_{2,2}\times dp_2+\dots+a_{2,n}\times 阅读全文
posted @ 2026-08-30 09:52 虚空远行者 阅读(3) 评论(0) 推荐(0)
摘要: 最小割不是最小割 阅读全文
posted @ 2026-07-23 15:26 虚空远行者 阅读(9) 评论(0) 推荐(0)
摘要: 你真的会最大流吗 阅读全文
posted @ 2026-07-21 15:40 虚空远行者 阅读(11) 评论(0) 推荐(0)
摘要: 网络流nb 阅读全文
posted @ 2026-07-18 15:05 虚空远行者 阅读(21) 评论(0) 推荐(0)
摘要: 我痛恨线段树 阅读全文
posted @ 2026-07-15 09:13 虚空远行者 阅读(9) 评论(0) 推荐(0)
摘要: 快读 点击查看代码 template<typename type_of_scan> inline void scan(type_of_scan &x){ type_of_scan f = 1;x = 0;char s = getchar(); while(s<'0'||s>'9'){if(s=='- 阅读全文
posted @ 2026-07-14 14:39 虚空远行者 阅读(7) 评论(0) 推荐(0)
摘要: 注意到如果对每个点都跑一边最短路的话时间无法接受,但是注意到所有询问的路径长度严格大于 \(\sqrt{n}\)。 也就是说,如果我们随机选一个点在这条路径上的概率有 \(\frac{1}{\sqrt{n}}\)。所以我们选 \(x\) 个点,至少有一个在路径上的概率为 \((1-\frac{1}{ 阅读全文
posted @ 2026-06-25 16:02 虚空远行者 阅读(6) 评论(0) 推荐(0)
摘要: 首先我们知道如果没有去掉玩偶的限制就是一个二进制分组优化的完全背包,这是基础所以不讲。 然后我们来看这个去掉玩偶的操作。对于这种删除操作一般有以下几种做法: 如果可以直接算贡献就直接算 否则如果加入操作好维护的话就反过来处理 最后都不好维护的话就考虑能不能预处理一些信息,然后能拼出我们想要的答案。 阅读全文
posted @ 2026-06-18 15:15 虚空远行者 阅读(15) 评论(0) 推荐(0)
摘要: 注意到题解区的解释好像都不清楚,错译我来写一篇。 首先建重构树,然后一个子树内的节点(根节点权值 \(\le p\))的点都可以到达。 答案就是这些点到点 \(1\) 的最短路的最小值。题解都没解释这是为什么。 注意到重构树的子树在原图上相当于一张导出子图,我们定义这张子图边上的点(即和不在这张子图 阅读全文
posted @ 2026-06-13 16:55 虚空远行者 阅读(9) 评论(0) 推荐(0)
摘要: 字符串 优化枚举次数 注意到对于一个字符串S,假设其形态如下: .....a.....a.....c 我们要找到 ac 这个子串(位置不同视为同一个),其实只需要找第一个 a 和这个字符后面的第一个 c 即可。 死因: 点击查看代码 void check(int i , int j , string 阅读全文
posted @ 2026-06-06 16:19 虚空远行者 阅读(18) 评论(0) 推荐(0)