摘要: Link 首先这个题目的限制卡的很死,最好是O(n)解决,其次当看到异或的时候,就可以考虑按照二进制位进行计算。 对于这个题,我们定义\(dp_i\)表示以\(a_i\)为最右端的子区间的答案的和 那么首先可以想到,贡献给这个答案的有两个部分,包括\(a_i\)的和不包括的,其中不包括\(a_i\) 阅读全文
posted @ 2023-09-18 20:58 Simex 阅读(92) 评论(0) 推荐(0) 编辑
摘要: Link 简单版本的结论还是很容易猜到的。 首先很容易想到的第一步就是尽可能地不覆盖地取尽可能多地区间,最后剩下了一小块。 然后在接着原来的指针一个一个地往右问,直到不能问了为止。 为什么这样是正确的呢?首先,在这样一步一步地往右查询的过程中,我们会发现总是前$k-1个数加上后面的一个数。 然后题面 阅读全文
posted @ 2023-09-18 19:54 Simex 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 事实上我们可以发现,如果\(b_i=x\)最后,那么我们可以连一条边,从\(i\)到\(x\) 这样我们就得到了一个有向图,在这张有向图呢,可以证明的是 如果\(k=1\),那么必须全部都是自环。 若不成立,则必须每个环的大小恰好为\(k\) 这样就可以解决了。 #include<cstdio> # 阅读全文
posted @ 2023-09-18 09:47 Simex 阅读(14) 评论(0) 推荐(0) 编辑