摘要: T1 考虑 \((1,i)\),直接划分问题。题目限制确定了 dp 划分的可行性。 记住这个只有 \(m\) 点伸出去的 trick,相当于区间 dp 的 \(k\)。 区间 \((l,m,r)\) 表示区间中只有 \(m\) 伸出去了的方案。 枚举距离 \(l,r\) 最近的跨越 \(m\) 的点 阅读全文
posted @ 2024-07-12 13:37 LCat90 阅读(11) 评论(0) 推荐(0)
摘要: 晚测 垃圾。指比赛和我。 但是我更垃圾。 以为只有自己一个 sb AK 不了。 T1 修改中…… 要是我知道有单调性大概就做出来了。 lhy 太厉害啦!!!!!因为前面的中位数已经使得答案最小了,再加入一个数无论中位数如何变化都不会使得之前的序列答案更小,单调性得证。 确定左端点,二分第一个大于等于 阅读全文
posted @ 2024-07-10 18:21 LCat90 阅读(24) 评论(0) 推荐(0)
摘要: 我们可以注意到一些感觉很典,很重要,但是之前一直不知道的东西。 明天写,因为还没补完题。 阅读全文
posted @ 2024-07-09 22:01 LCat90 阅读(15) 评论(0) 推荐(0)
摘要: 电压 求奇环的边的交。 考虑 dfs 树,一条返祖边就意味着环。 维护边经过奇偶数量。 考虑经过一条返祖边,,会使得 \(x\to to\) 的路径上的边全部都在环里面,于是做一个树上差分,回溯的时候 \(fa+x \to fa\) 即可。 再考虑 dfs 树,发现所有的环都可以被统计到。 边染色 阅读全文
posted @ 2024-07-08 11:30 LCat90 阅读(43) 评论(0) 推荐(0)
摘要: 首先我们亲爱的 zyr 同学在 2 道几乎一样的括号序列题上面用了 2 种不同的方式来维护 pushup,而这和每道题题解的趋势几乎一致。 但是我直接交的他的代码。 所以写一下 zyr 队爷的思路。 以下直接设 ( 为 \(1\),) 为 \(-1\)。 一、结论法 答案为右最大前缀和 - 左最小后 阅读全文
posted @ 2024-07-04 19:23 LCat90 阅读(22) 评论(0) 推荐(0)
摘要: 一、倍增 预处理 \(O(n\log n)\),单次查询 \(O(\log n)\)。 二、tarjan 狗都不用。询问离线。总共 \(O(n\times a(n) + q)\)。 三、树剖 预处理 \(O(n)\),查询 \(O(\log n)\)。比倍增常数小很多。 int Lca(int x, 阅读全文
posted @ 2024-07-03 12:21 LCat90 阅读(16) 评论(0) 推荐(0)
摘要: C 注意:长度为 \(n\) 的值域为 \([1,m]\) 的单调递增序列个数为 \(C(n, m)\)。 你说得对,但是我用了前缀和优化 dp,然后发现等价的。 D 注意:\(p^{hxy} \bmod (p-1)\) 一定是 \(1\)。 然后就是简单的 bfs 了。 E 注意到答案区间连续,那 阅读全文
posted @ 2024-06-28 21:47 LCat90 阅读(59) 评论(0) 推荐(0)
摘要: 为什么出题人不卡记忆化!!! wc。T4 记忆化如果碰上一直不变的话就变成 1e12 了。这样就 rk 2000 了,掉大分。 B dp 即可。 C 二分+贪心。 D 南平。果然被卡了。但是 zxr 和 lhy 也没了,赢。 记忆化的好处就在于如果 \(V\) 一直在变的话复杂度就是 \(O(n+V 阅读全文
posted @ 2024-06-28 11:50 LCat90 阅读(31) 评论(0) 推荐(0)
摘要: 动态维护一个区间内只出现了一次的数,操作涉及插入和删除 Sol1 值域分块,简单来说还是暂时压缩。每次新插入一个数就将 \(x/M\to x\)。 最后查询 \([1,M]\),只要有一个位置可以,那么就在这里暴力找整块,也只是 \(S/M\) 的大小。 取 \(M=\sqrt S\) 那么复杂度就 阅读全文
posted @ 2024-06-27 21:42 LCat90 阅读(15) 评论(0) 推荐(0)
摘要: B 除以 \(y\) 是 log 级别,所以循环先使得 \(x<y\)。 然后就是一个循环节。 C multiset 优化 dp。 可以双指针维护一个 \(i\) 的决策区间,在这个区间内选择 dp 的最大值,\(dp_i=\max dp_j+1\)。取 *(--st.end()) 即可。 D 注意 阅读全文
posted @ 2024-06-26 23:36 LCat90 阅读(22) 评论(0) 推荐(0)