分治
v5zsq
新的一天,新的不会
展开
-
HDU 1007 Quoit Design(分治)
Description 给出n个点的坐标,输出点集中距离最近两点间距离的一半 Input 多组输入,每组用例第一行为点数n,之后n行每行两个浮点数表示一个点的横纵坐标,以n=0结束输入 Output 对于每组用例,输出点集中距离最近的两点间距离的一半 Sample Input 2 0 0 1 1 2 1 1 1 1 3 -1.5 0 0 0 0 1.5 0 Sa原创 2015-08-28 14:57:57 · 1475 阅读 · 0 评论 -
HDU 5808 Price List Strike Back(整体二分)
Description 在Byteland一共有n家商店,编号依次为1到n。每家商店只会卖一种物品,其中第i家商店的物品单价为vi,且它到Byteasar的家的距离为di Byteasar每天都会进行一次购物,第i天他会选择一个区间[li,ri],并给自己设定一个距离上限ci,然后他会在编号在该区间内每家到自己家的距离不超过ci的商店购买最多一件物品,当然他也可以选择什么都不买。回家之后,B原创 2016-08-08 13:28:09 · 565 阅读 · 0 评论 -
GYM 100247 K. Three Contests(CDQ分治)
Description n支队伍都参加了三场比赛,每场比赛有一个得分,一支队伍觉得另一支队伍比自己强当且仅当那支队伍至少有一次比赛成绩比自己好,问有多少对队伍满足每支队伍都觉得对方比自己强 Input 第一行一整数n表示·队伍数量,之后n行每行三个整数a[i],b[i],c[i]表示第i支队伍三场比赛的成绩(1<=n<=200000,1<=a[i],b[i],c[i]<...原创 2017-03-02 15:30:10 · 764 阅读 · 0 评论 -
CodeForces 414 C.Mashmokh and Reverse Operation(归并排序)
Description】 给出一个长度为2^n的序列,m次操作,每次操作给出一整数q,把该序列分成连续的长度均为2^q的2^(n-q)段后,把每段反转,并查询反转后的逆序对 Input 第一行一整数n,之后一个长度为2^n的序列ai,然后输入一整数m表示操作数,之后m个整数qi表示一次操作 (0<=n<=20,1<=ai<=1e9,1<=m<=1e6,0<=qi<=n) Output 对原创 2017-04-10 15:17:43 · 549 阅读 · 0 评论 -
CodeForces 321 C.Ciel the Commander(树分治)
Description 给出一棵树,现在要给每个节点赋值’A’~’Z’,要求每两个被赋值成相同字母的节点在树上的简单路径上必须存在一个比该字母更小的字母,输出一种合法方案,如果不存在合法方案则输出Impossible! Input 第一行一整数n表示点数,之后n-1行每行两个整数u和v表示u和v之间有一条边(2<=n<=1e5) Output 如果存在一种合法方案则输出每个点...原创 2017-04-12 15:42:26 · 522 阅读 · 0 评论 -
HDU 5730 Shell Necklace(CDQ分治+FFT)
Description 给出长度分别为1~n的珠子,长度为i的珠子有a[i]种,每种珠子有无限个,问用这些珠子串成长度为n的链有多少种方案 Input 多组用例,每组用例首先输入一整数n表示链长,之后n个整数ai表示长度为i的珠子种类数,以n=0结束输入(n<=10^5,0<=ai<=10^7) Output 对每组用例,输出方案数,结果模313 Sample Input 3 1 3原创 2016-07-25 15:33:22 · 2387 阅读 · 2 评论 -
HDU 6065 RXD, tree and sequence(在线倍增LCA+CDQ分治+离线tarjan-LCA+dp)
Description 给出一棵n个节点的树和一个1~n的排列,要求把该排列分成k个连续的段,使得每段点在树上的LCA深度之和最小 Input 多组用例,每组用例首先输入两个整数n和k,之后输入一个1~n的排列,最后n-1行每行两个整数u和v表示u和v之间有一条树边,以文件尾结束输入 (1<=k<=n<=3e5,n*k<=3e5) Output 输出将该排列分成k段后每段LCA深度之和最原创 2017-08-07 09:44:19 · 555 阅读 · 0 评论 -
HDU 6135 Casual Podracing(CDQ分治)
Description一个周长为LL的圆弧上面有nn个不重合的点,第ii个点距圆弧起点距离(圆上距离)为did_i,速度为viv_i(取逆时针为正方向,任意两点速度不同),能量为wiw_i,一个点会被标记当且仅当其在运动过程中与能量值大于其能量值的点相遇(一个点会被标记后会继续运动),问从什么时刻开始不会再有点会被标记Input第一行一整数TT表示用例组数,每组用例首先输入两个整数nn和LL表示圆上原创 2017-09-22 21:07:19 · 573 阅读 · 0 评论 -
HDU 6159 Graph Of Zhuper(dp+CDQ分治+FFT+生成函数+莫比乌斯反演)
DescriptionGG为一个nn个点带标号无向图,无重边无自环,假设其有kk个连通分支,第ii个连通分支点数为sizeisize_i,定义GG的权值Zhu(G)=gcd(size1,size2,...,sizek)Zhu(G)=gcd(size_1,size_2,...,size_k),求∑Zhu(G)\sum Zhu(G)Input第一行一整数TT表示用例组数,每组用例输入两个整原创 2018-01-22 20:03:35 · 721 阅读 · 0 评论 -
HDU 5896 Running King(dp+NTT+CDQ分治)
Description求nnn个点的无向有环图个数Input第一行一整数TTT表示用例组数,每组用例输入一整数n(1≤T≤10,1≤n≤2⋅105)n(1≤T≤10,1≤n≤2⋅105)n(1\le T\le 10,1\le n\le 2\cdot 10^5)Output输出nnn个点的无向有环图个数,结果模100453580910045358091004535809Sam...原创 2018-04-05 14:12:50 · 303 阅读 · 0 评论 -
Newcoder 146 B.Filling pools(CDQ分治+生成函数+FFT)
Description对于一个n×nn\times nn×n的池塘,初始每个格子都没有水,每行和每列只能选取一个位置填满水,每个时刻对于一个没有水的位置,只要其上下左右四个位置中至少有两个有水,那么这个位置也会填满水,问有多少种选取方案可以使得整个水池最终填满水Input一个整数n(1≤n&lt;262144)n(1\le n&lt;262144)n(1≤n<26214...原创 2018-09-19 16:21:31 · 450 阅读 · 0 评论 -
Newcoder 147 G.Longest Common Subsequence(CDQ分治)
Description给出四个长度为nnn的序列a,b,c,da,b,c,da,b,c,d,求四个序列的最长公共子序列长度Input第一行一整数nnn,之后输入四个长度为nnn的序列a,b,c,da,b,c,da,b,c,d,a,b,ca,b,ca,b,c三个序列中每种数字出现次数不超过222(1≤n≤104,1≤ai,bi,ci,di≤n)(1\le n\le 10^4,1\le a_i...原创 2018-09-25 20:16:46 · 186 阅读 · 0 评论 -
HDU 5618 Jam's problem again(CDQ分治)
Description Jam喜欢坐标轴上的题,现在给出你一个三维的坐标轴,给出N个点,坐标分别为(x,y,z),如果有两个点(xi,yi,zi)和(xj,yj,zj),xi>=xj,yi>=yj,zi>=zj时,i点的等级就加一,每个等级一开始为0,当然1≤x,y,z≤100000 1≤N≤100000,现在求每个点的等级 Input 第一行T(1≤T≤15),表示TT组数据。 接下来TT原创 2016-08-04 10:41:33 · 594 阅读 · 0 评论 -
BZOJ 3262 陌上花开(CDQ分治)
Description 有n朵花,每朵花有三个属性:花形(s)、颜色(c)、气味(m),又三个整数表示。现要对每朵花评级,一朵花的级别是它拥有的美丽能超过的花的数量。定义一朵花A比另一朵花B要美丽,当且仅当Sa>=Sb,Ca>=Cb,Ma>=Mb。显然,两朵花可能有同样的属性。需要统计出评出每个等级的花的数量。 Input 第一行为N,K (1 <= N <= 100,000, 1 <= K原创 2016-04-07 10:31:57 · 1583 阅读 · 0 评论 -
POJ 2299 Ultra-QuickSort(归并排序)
Description 求序列的逆序对 Input 多组输入,每组用例第一行为序列长度n,之后n行为序列,以n=0结束输入 Output 对于每组用例,输出该序列的逆序对数 Sample Input 5 9 1 0 5 4 3 1 2 3 0 Sample Output 6 0 Solution 归并排序求逆序对即可 Code#include原创 2015-08-27 09:32:14 · 460 阅读 · 0 评论 -
POJ 1804 Brainman(归并排序)
Description 给出多组数列,输出每组数列的逆序对数 Input 第一行为数据组数T,之后N行每行一组用例,每组用例第一个整数为数列中数的个数N,之后为N个数 Output 对于每组用例,输出其逆序对数,每两组输出用空行隔开 Sample Input 4 4 2 8 0 3 10 0 1 2 3 4 5 6 7 8 9 6 -42 23 6 28 -100 65537原创 2015-08-26 16:04:04 · 622 阅读 · 0 评论 -
HDU 5412 CRB and Queries(整体二分)
Description 一个序列中有n个整数,m个操作,操作有两种: 1 i x 表示将i位置的数改为x 2 i j k 表示询问区间[i,j]的第k小的数是多少 Input 第一行为一整数n表示序列长度,第二行为n个整数ai表示该序列,然后是一整数m表示操作次数,最后m行每行表示一个操作 (1<=n,m<=10^5,1<=ai<=10^9,1<=l<=r<=n,1<=k<=r-l+1)原创 2016-03-02 09:18:09 · 984 阅读 · 0 评论 -
BZOJ 2527 Meteors(整体二分)
Description 有n个国家和m个空间站,每个空间站都属于一个国家,一个国家可以有多个空间站,所有空间站按照顺序形成一个环,也就是说,m号空间站和1号空间站相邻。现在,将会有k场流星雨降临,每一场流星雨都会给区间[li,ri]内的每个空间站带来ai单位的陨石,每个国家都有一个收集陨石的目标pi,即第i个国家需要收集pi单位的陨石。 询问:每个国家最早完成陨石收集目标是在第几场流星雨后,如果原创 2016-03-02 09:18:00 · 579 阅读 · 0 评论 -
ACdream 1157 Segments(CDQ分治)
Description 由3种类型操作: 1)D L R(1 <= L <= R <= 1000000000) 增加一条线段[L,R] 2)C i (1-base) 删除第i条增加的线段,保证每条插入线段最多插入一次,且这次删除操作一定合法 3) Q L R(1 <= L <= R <= 1000000000) 查询目前存在的线段中有多少条线段完全包含[L,R]这个线段,线段X被线段Y完全包原创 2016-04-07 10:47:51 · 707 阅读 · 0 评论 -
BZOJ 2683 简单题(CDQ分治+容斥)
Description 你有一个N*N的棋盘,每个格子内有一个整数,初始时的时候全部为0,现在需要维护两种操作: 1 x y A(1<=x,y<=N,A是正整数):将格子x,y里的数字加上A 2 x1 y1 x2 y2(1<=x1<= x2<=N,1<=y1<= y2<=N):输出x1 y1 x2 y2这个矩形内的数字和 3:终止程序 Input 输入文件第一行一个正整数N,接下来每行一原创 2016-04-07 10:58:40 · 973 阅读 · 0 评论 -
BZOJ 1176 Mokia(CDQ分治+容斥)
Description 维护一个W*W的矩阵,初始值均为S.每次操作可以增加某格子的权值,或询问某子矩阵的总权值.修改操作数M<=160000,询问数Q<=10000,W<=2000000. Input 第一行两个整数,S,W;其中S为矩阵初始值;W为矩阵大小 接下来每行为一下三种输入之一(不包含引号): “1 x y a” “2 x1 y1 x2 y2” “3” 输入1:你需要把(原创 2016-04-07 11:02:03 · 1036 阅读 · 0 评论 -
BZOJ 3295 动态逆序对(CDQ分治)
Description 对于序列A,它的逆序对数定义为满足i < j,且Ai>Aj的数对(i,j)的个数。给1到n的一个排列,按照某种顺序依次删除m个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序对数 Input 输入第一行包含两个整数n和m,即初始元素的个数和删除的元素个数。以下n行每行包含一个1到n之间的正整数,即初始排列。以下m行每行一个正整数,依次为每次删除的元素 Outp原创 2016-04-07 11:17:10 · 1282 阅读 · 0 评论 -
HDU 4742 Pinball Game 3D(CDQ分治)
Description 给出n个三维点对(x,y,z),求三维非严格最长上升子序列长度和最长上升子序列数量 Input 第一行为一整数T表示用例组数,每组用例第一行为一整数n表示点数,之后n行每行三个整数x,y,z表示一个点(T<=3,n<=10^5,0<=x,y,z<=2^30) Output 对于每组用例,输出两个整数分别表示三维非严格最长上升子序列长度和最长上升子序列数量(数量结果模原创 2016-04-07 11:21:54 · 963 阅读 · 0 评论 -
BZOJ 2253 纸箱堆叠(CDQ分治)
Description P 工厂是一个生产纸箱的工厂。纸箱生产线在人工输入三个参数 n p a , , 之后, 即可自动化生产三边边长为 (a mod P,a^2 mod p,a^3 mod P) (a^4 mod p,a^5 mod p,a^6 mod P) …. (a^(3n-2) mod p,a^(3n-1) mod p,a^(3n) mod p) 的n个纸箱。在运输这些纸箱时,原创 2016-04-07 10:06:46 · 1139 阅读 · 0 评论 -
HDU 5324 Boring Class(CDQ分治)
Description 给出n个二维点对,求LIS长度和编号字典序最小的LIS(x非增,y非减) Input 多组用例,每组用例第一行为一整数n表示点数,第二行n个整数xi表示n个点的第一维,第三行n个整数yi表示n个点的第二维,以文件尾结束输入 (n<=50000,1<=xi,yi<=10^9) Output 对于每组用例,第一行输出LIS长度ans,第二行ans个整数表示编号字典序最原创 2016-04-07 11:33:09 · 873 阅读 · 0 评论 -
Newcoder 59 E.求最值(分治)
Description给你一个长为nnn的序列aaa定义f(i,j)=(i−j)2+g(i,j)2f(i,j)=(i-j)^2+g(i,j)^2f(i,j)=(i−j)2+g(i,j)2ggg是这样的一个函数求最小的f(i,j)f(i,j)f(i,j)的值,i!=ji!=ji!=jInput第一行一个数nnn之后一行nnn个数表示序列aaa(2≤n≤105,∣ai∣≤104)(2...原创 2018-10-22 10:29:27 · 361 阅读 · 0 评论