Loading

摘要: Slot Machines 求字符串后缀的最小循环节(可截断) $kmp$ $kmp$ 只能在 $O(n)$ 预处理后 $O(1)$ 询问最小循环节,因此考虑直接把数组反转,然后询问即可 注意不可以把所有数字省略 #include <iostream> #include <cstdio> #incl 阅读全文
posted @ 2022-08-30 16:29 dgsvygd 阅读(30) 评论(0) 推荐(0) 编辑
摘要: How Many to Be Happy? 最小割 因为是最小生成树,因此可以考虑对于一条边来说,他的左右两端的点视为处于两个不同的集合,然后只通过该边进行连接,这样最小生成树就必然会利用这条边 比该边大的边显然不用考虑,就考虑比该边边权小的边,然后进行最小割,边流量为 $1$(分割成两个集合,且割 阅读全文
posted @ 2022-08-30 16:25 dgsvygd 阅读(21) 评论(0) 推荐(0) 编辑
摘要: Philosopher's Walk 递归分治 判断一下当前走的位置是属于 $4$ 个块中的第几个块,然后递归计算一下在边长变小一倍后,他应该所处的位置,然后再对原位置进行旋转或平移的操作 #include <iostream> #include <cstdio> #include <vector> 阅读全文
posted @ 2022-08-30 16:17 dgsvygd 阅读(21) 评论(0) 推荐(0) 编辑
摘要: Anya's gifts 将数字分成两个集合,使得两个集合的异或和之和最大 线性基 因为必然是要分成两个部分,所以一个数位出现了奇数次 $1$,不管怎么分,必然能变成 $1+0$ 的情况 所以只考虑偶数次的数位,让一个集合尽可能的大(凑 $1$ ),则另外一个集合的相同数位也会是 $1$ 因此就是对 阅读全文
posted @ 2022-08-30 16:02 dgsvygd 阅读(109) 评论(0) 推荐(0) 编辑
摘要: Candies median 二分 直接二分答案,每次 $check$ 的时候就遍历一次 $k$ 算前缀和就好了 这题太具欺骗性了,之前一直以为是什么线段树,结果常数真的大 #include <iostream> #include <cstdio> #include <vector> using n 阅读全文
posted @ 2022-08-30 14:42 dgsvygd 阅读(50) 评论(0) 推荐(0) 编辑