分治 ---- 递归
文章平均质量分 70
orz11111111
这个作者很懒,什么都没留下…
展开
-
CF 863D. Yet Another Array Queries Problem 逆向思维,递归
题意:长度为n的序列a,q次操作.操作1:将[l,r]内的数右循环移一位,a[l]->a[l+1],...a[r]->a[l].操作2:将[l,r]内的数逆序,a[l]->a[r],a[l+1]->a[r-1]...a[r]->a[l].n,q直接暴力O(nq)超时 注意到只要查询操作后,数列中m个下标.若第Q次操作是[1,L,R] L#include usi原创 2017-12-11 09:01:48 · 265 阅读 · 0 评论 -
牛客 挑战15C-出队 约瑟夫(递归)
题意:n个人围成一圈,1,2报数,每次报到1的人出队,直到没人为止.Q次询问,每次询问编号x的是第几个出队的? n,x<=1e18, Q<=5e5.每个人编号++,n变为1.那么第一轮淘汰掉所有偶数编号的人.此时剩下的每个人重新编号.求出此时x的编号,每轮淘汰偶数编号的人,递归求解.#include <bits/stdc++.h>using namespace std;...原创 2018-05-12 14:13:13 · 297 阅读 · 0 评论 -
BZOJ 3262 陌上花开 三维偏序,CDQ分治
題意:长度为n的三元组序列(a,b,c), 对每个i询问有多少个j满足 ai>=aj && bi>=bj && ci>=cj.n,a,b,c<=1e5.第一维排序,然后对序列分治.每次分治后对第二维进行归并,归并时考虑左区间对右区间的贡献,BIT维护第三维.O(n*logn*logn)#include <bits/stdc++.h>...原创 2018-06-16 11:46:40 · 212 阅读 · 0 评论 -
HDU 5354 CDQ分治,并查集维护,奇圈
题意:n点m条边的无向图,对每个i[i=1..n],询问删除点i后,是否能变为二分图.1<=n,m<=1e5.一个图为二分图等价于这个图不包含奇圈.然后无法求出所有奇圈并做交集.cdq分治. 计算[l,r]的答案 如果[l,mid]的边已经包含奇圈 那么[mid+1,r]的答案显然为0.否则递归到右半区间. 用并查集来维护是否有奇圈,为了要撤销操作,用按秩合并代替路径压缩 并且用栈来...原创 2018-06-17 20:32:30 · 152 阅读 · 0 评论