12 2018 档案

摘要:好难写啊! 这题如果保证数据随机,那么可以直接跑一个最小圆覆盖,先二分半径,再贪心覆盖。 但是出题人显然不会这么善良。 于是就可以倍增,$1,2,4,8,16...$,这样尝试长度,找到最大可行二进制长度(即最高位)后,再逐位确定。 复杂度$O(nlog^2(n))$ 但是写完之后又被卡了精度,改随 阅读全文
posted @ 2018-12-30 18:07 Yuhuger 阅读(221) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-12-27 19:01 Yuhuger 阅读(5) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-12-25 21:28 Yuhuger 阅读(6) 评论(0) 推荐(0)
摘要:这题首先可以想到按位贪心, 高位尽可能填0。 但是如何判断能不能填0呢? 原序列的上升位在划分后肯定还是上升位。 但是因为划分成了两个序列,可能会有一些新晋上升位。 可以证明: 如果存在一种$X$串,$Y$串上升数相等的方案,那么,必定存在一种$X$中的上升全为原串中的上升,或$Y$中的上升全为原串 阅读全文
posted @ 2018-12-21 15:37 Yuhuger 阅读(497) 评论(0) 推荐(2)
摘要:loj2838 比太郎的聚会 题意大致就是给一张DAG,每次询问一个点和一个ban掉的点集,问除了这些点,剩下的点到询问点最长路的最大值。 简单维护根号个最远点,每次合并信息。 查询时直接暴力查表,如果表内一个都不行就重新计算一遍所有之前的点到这个点距离的最大值。 块大小调不好就会被卡常。 cpp 阅读全文
posted @ 2018-12-20 14:57 Yuhuger 阅读(454) 评论(0) 推荐(0)
摘要:对于插入一个字符串,普通回文自动机复杂度是均摊的。 对于单次插入复杂度有证明的回文自动机插入, 设$\sum$为字符集大小,翁文涛的论文里提到了单次插入$O(\sum)$的记忆化,从理论上来说,可以通过主席树优化到$O(log\sum)$,但是代码量就增加了,而且对于26的字符集,这样写应该会变慢吧 阅读全文
posted @ 2018-12-12 18:57 Yuhuger 阅读(411) 评论(0) 推荐(3)
摘要:回文自动机好题啊! 解法一 每$\sqrt n $分一块 每块建回文自动机到字符串末尾。 顺便开三个$\sqrt n n$的数组记下预处理答案,回文自动机头指针,和每个节点第一次出现的右端点 询问的时候回文自动机前端添加,算出答案。 貌似不能写均摊复杂度的回文自动机,只能写单次复杂度有证明的。 设$ 阅读全文
posted @ 2018-12-05 22:11 Yuhuger 阅读(843) 评论(1) 推荐(0)