摘要: 题解 题目中编号从 0 开始,方便起见,代码中加上 1 使得从 1 开始。 首先从 $i$ 弹射 $k$ 就是指 $i$ 与 $i + k$ 连边,对于 目标 $\gt n$ 的全部指向 $n + 1$。询问 $i$ 时直接 $access(i, n + 1)$,输出这个 Splay 的 $size 阅读全文
posted @ 2018-12-24 12:24 cjrsacred 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 题解 LCT的模板题之一。 像《线段树2》一样,先打乘法标记再打加法标记。 注意 $51061^2 = 2607225721$,会爆 int 。可以使用 uint,不过还是推荐 long long。 代码 cpp include using namespace std; typedef long l 阅读全文
posted @ 2018-12-24 12:15 cjrsacred 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 树链剖分裸题。 线段树统计“答案”、“前缀字符”、“后缀字符”三个信息就可以很方便的合并了。 代码: 阅读全文
posted @ 2018-12-23 23:38 cjrsacred 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 这道题在洛谷也有( "P3649" )但数据不好。推荐到bzoj提交 回文自动机的模板题,求出PAM后统计即可。 代码: cpp include using namespace std; typedef long long ll; const int maxn = 300000 + 5; struc 阅读全文
posted @ 2018-12-23 23:32 cjrsacred 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 题解 建模: 把每个框子拆成三个点并连在一起,每颗球向他能匹配的框子的三个点分别连边。 之后求一般图最大匹配即可 证明: 如果原问题取得最优解,每颗球都会与一个框匹配,每个框如果匹配的球数不超过两个,则内部产生一条匹配边,这是一个最大匹配。 反过来,任意最大匹配中,每颗球必然能匹配,而后框子的“内部 阅读全文
posted @ 2018-12-23 23:27 cjrsacred 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 去年这个时候,我还在瞻仰这道题而无从下手,转眼一年又过去了啊,时间过得好快 写解释器大概有两种动手方法:一种是程序员的思路,每次实现一点功能并调试,逐渐实现全部功能;另一种是OIer的思路,一次性码完所有代码然后开始调试。 显然第一种方法更合理一些。第二种方法虽然写起来很痛快,但是调试起来。。。 然 阅读全文
posted @ 2018-10-12 00:39 cjrsacred 阅读(219) 评论(0) 推荐(0) 编辑