摘要: 嗯。 NOI2021最白给的一题。 PS:很后悔没打同步赛,少了一张同步赛Ag 考虑加黑的256位01串,我们思考一下。 因为$k$小于16,所以我们直接分成16块。所以一定可以的绝对有一块是完全匹配的。 并记录每个块的信息。 考虑用链表代替$vector$记录每个块的信息减小常数。 那么我们询问一 阅读全文
posted @ 2021-08-04 20:57 fhq_treap 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 考虑到每个点就是0,1 那么相当于我们要得出一个序列$a_i$ 那么考虑到前缀异或,那么我们一次操作是$b_l \oplus b_r$的值。 我们只要有$n$个方程就行。 所以MST。 阅读全文
posted @ 2021-08-04 16:41 fhq_treap 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 考虑到这种对于某种操作顺序有一个权值。 且这个权值有一个$O(n)$或者更好的复杂度求出。 求最值。 那可以用模拟退火。 #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<ctime> # 阅读全文
posted @ 2021-08-04 15:58 fhq_treap 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 一个很经典的做法。 $k$个最值的求法,先对每个元素进行最操作,再对堆顶进行次操作丢入堆。 考虑怎么进行次操作。 每次把可操作的区间按最操作的位置切开。 #include<iostream> #include<cstdio> #include<queue> #define ll long long 阅读全文
posted @ 2021-08-04 14:49 fhq_treap 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 考虑到一次答案就是两点的子树和乘积。 我们先维护一个整个大树。 用并查集做小树的情况,树剖做子树大小的维护。 #include<iostream> #include<cstdio> #define ll long long #define N 100005 ll n,q; struct P{ ll 阅读全文
posted @ 2021-08-04 11:17 fhq_treap 阅读(27) 评论(0) 推荐(0) 编辑