摘要: 题面 洛谷翻译有毒系列 正常人能看懂的题面:若$S$可以通过前缀$s$重复若干次(可重叠)来表示($s!=S$),则称$s$是$S$的一个循环串。求一个字符串所有前缀(包括本身)的最长循环串的长度之和。 根据$nxt$数组的定义,显然每个串的答案是$len-nxt'$,这里的$nxt'$表示最小的前 阅读全文
posted @ 2018-10-04 08:11 Speranza_Leaf 阅读(216) 评论(0) 推荐(0)
摘要: 题面 其实好像并不难,因为猫老师(应该是猫老师吧,还是LX大佬?)有一句话让我印象深刻:“包的(border)的包的还是包的”=。= 统计个数不就是统计长度么,然后根据上面那句话,当$nxt$长度大于$\frac{len}{2}$时我们就不断跳$nxt$直到满足条件即可 1 #include<cst 阅读全文
posted @ 2018-10-03 21:00 Speranza_Leaf 阅读(115) 评论(0) 推荐(0)
摘要: 题面 踩踩时间复杂度不正确的高斯消元 首先可以发现第一行确定后就可以确定整个矩阵,所以可以枚举第一行的所有状态然后$O(n)$递推检查是否合法 $O(n)$递推的方法是这样的:设$pre$为上一行,$now$为当前行,$nxt$为递推出的下一行,$all$为列的全集,则可以直接用位运算完成递推: $ 阅读全文
posted @ 2018-10-02 15:56 Speranza_Leaf 阅读(135) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2018-10-02 14:25 Speranza_Leaf 阅读(6) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2018-09-30 18:29 Speranza_Leaf 阅读(6) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2018-09-30 15:25 Speranza_Leaf 阅读(8) 评论(0) 推荐(0)
摘要: 题面 线段树......模板题(雾? 然而两种标记会互相影响,必须保证每次只放一个(不然就不知道怎么放了),具体的影响就是: 翻转标记会使得覆盖标记一起翻转,下放的时候就是各种swap 覆盖标记会抹掉翻转标记,下放的时候好像挺正常的 然后就是码码码+细节 1 #include<cstdio> 2 # 阅读全文
posted @ 2018-09-30 15:06 Speranza_Leaf 阅读(111) 评论(0) 推荐(0)
摘要: 题面 在树上建主席树...... 每个点从父亲那里建过来,最后建出来就是从根到$i$这条链上的主席树,查询的时候一边差分一边查询 ($cmt[u]+cmt[v]-cmt[lca(u,v)]-cmt[anc[lca(u,v)]]$) 1 #include<cstdio> 2 #include<cstr 阅读全文
posted @ 2018-09-30 15:02 Speranza_Leaf 阅读(118) 评论(0) 推荐(0)
摘要: 题面 能把差分约束卡死的题,因为正解并不是差分约束,然而被我用一种奇怪的姿势过去了。。。 差分约束就是相等互相连零边,不超过/不低于从不多的一方向另一方连零边,超过/低于从少的一方向另一方连最小的边权——$1$,最后跑最长路。然后你会发现你被卡T了若干个点,于是开始了优化=。= 首先有一个通用的优化 阅读全文
posted @ 2018-09-29 22:03 Speranza_Leaf 阅读(116) 评论(0) 推荐(0)
摘要: 题面 正反各做一遍哈希来判断,然后在两个哈希值里取一个$max/min$做哈希值,然后每次把子串们的哈希插进$set$里,最后统计集合大小,就可以优秀地在$O(nlog^2$ $n)$中出解了 然后我觉得这样太没有理想了,就写了一个挂链哈希表,结果跑的贼慢。。。 我挂链时的区分方法是换模数再模出一个 阅读全文
posted @ 2018-09-29 18:31 Speranza_Leaf 阅读(146) 评论(0) 推荐(0)