
分治
Spy97
这个作者很懒,什么都没留下…
展开
-
牛客挑战赛34 银老板的游戏
题意三种操作,一种是画一个矩形,一种是删一个矩形,一种是提问一个矩形,问尚存的矩形中有多少和提问的相交题解拿总数减去不相交的要减去9个区域的上下左右的用树状数组很好就可以计算,但是发现,4个角的矩形被重复减去了,所以要加回来来到了问题的核心,求一个角的矩形的数量以左下角举例记矩形右上角坐标 (x,y)(x,y)(x,y),加入时刻为zzz,提问矩形左下角坐标 (X,Y)(X,Y)...原创 2019-12-01 11:16:52 · 140 阅读 · 0 评论 -
CF 1019E Raining season 边分治
#include<bits/stdc++.h>#define N 400010#define INF 0x3f3f3f3f#define eps 1e-5#define pi 3.141592653589793#define mod 998244353#define P 1000000007#define LL long long#define pb push_back...原创 2019-10-06 23:36:27 · 244 阅读 · 0 评论 -
Codeforces 914E Palindromes in a Tree 点分治
#include<bits/stdc++.h>#define N 200010#define INF 0x3f3f3f3f#define eps 1e-5#define pi 3.141592653589793#define mod 998244353#define P 1000000007#define LL long long#define pb push_back...原创 2019-10-04 23:25:59 · 244 阅读 · 0 评论 -
Codeforces 833D Red-Black Cobweb 边分治
题意一颗树,有边权,和颜色(红或黑)求,所有的路径中,满足两种颜色的个数差不超过少的颜色的两倍的路径的权值的乘积路径的权值为经过的边的权值的乘积题解边分治牛逼!!!出现了两个错误,一个是,快速幂时,指数不能先取模,不知道为啥脑子抽筋了…第二个是,算法有一部分考虑的还不完备,测数据时才发现了漏洞回到这道题来求不合法的路径个数我更喜欢边分治,因为考虑的简单,只会分成两个子问题,不需...原创 2019-10-04 08:08:31 · 252 阅读 · 0 评论 -
2019 ACM湖南省赛 边分治
边分治模板题代码#include<bits/stdc++.h>#define N 80010#define INF 0x3f3f3f3f#define eps 1e-5#define pi 3.141592653589793#define mod 998244353#define P 1000000007#define LL long long#define pb...原创 2019-10-02 14:16:24 · 227 阅读 · 0 评论 -
2019南昌网络赛 I Yukino With Subinterval CDQ分治
题目链接题意给出一个数列,一种操作是修改某个数,另一种是提问一个位置区间 [l,r][l,r][l,r] 和颜色区间 [x,y][x,y][x,y]问,若把连续相同的数字看做一个的话,在区间 [l,r][l,r][l,r] 中只考虑数字介于 [x,y][x,y][x,y] 的话,有几个题解一段连续相同的数字,将第一个看做本身,其余的看做 0, 问题就成了,在区间[l,r][l,r][l,...原创 2019-11-21 21:03:38 · 161 阅读 · 0 评论 -
2019牛客多校第三场 Removing Stones
题意给出一个序列,问有多少个区间满足:最大值的两倍小于等于区间和题解分治的思想,也是笛卡尔树对于所有的最大值,看多少个包含它的区间满足要求先在区间[1,n][1,n][1,n]中找到最大值的下标kkk如果左区间长度较小,我们则枚举左端点在左区间的,在右区间二分找到合适的右端点如果右区间长度较小,则枚举右端点在右区间总复杂度为O(n⋅log2n)O(n \cdot log^2 n...原创 2019-07-25 21:13:46 · 439 阅读 · 0 评论 -
三维偏序(陌上花开)CDQ分治
链接https://www.luogu.org/problemnew/show/P3810题解首先按照a、b、c的优先级排序,这样第一维已经有序了考虑第二维使用CDQ分治在递归合并的时候,按照b的大小关系合并左侧对右侧的影响是,首先a、b已经满足条件(在排序的时候,和合并时候),c有可能满足,所以在树状数组上更新c的值,当右侧统计答案时,在树状数组上查找小于等于c的个数即可注意,为了...原创 2019-06-16 09:05:58 · 292 阅读 · 0 评论 -
codeforces 1140E Palindrome-less Arrays
题意给出n个数,其中值为-1的需要从[1,m]中选一个数替代。要求替代后,不能出现某个子序列是回文的,求方案数。题解题目要求不能是回文,这就等价于不能出现a[i]==a[i+2]a[i]==a[i+2]a[i]==a[i+2]的情况,这个转换很重要。那么我们就可以根据奇偶分开来处理,答案就是两者的乘积。接下来是具体求方案数设序列 A,−1,−1,...,−1,−1,BA, -1, -...原创 2019-04-08 08:12:00 · 400 阅读 · 0 评论 -
2018 牛客多校第二场 C message
题意:给出n条直线,询问m次,每次询问给出一条直线,问这条直线与那n条直线的在y轴右侧交点的横坐标的最大值。题解:设交点为,则要使x最大,我将一条直线的两个系数a、b看做点(a,b),那么答案就是n个点中到询问点的斜率的最小值。为了方便和便于理解,我们将x坐标取反,转为求斜率的最大值。求上图黑点到红点的斜率最大值,可以变为只求下图连线中的点的斜率...原创 2018-09-19 00:16:42 · 419 阅读 · 0 评论 -
codeforces 958E3
题意:给出n个A类点和n个B类点,AB配对,要求连线不能有交点,输出方案。题解:感觉是个匹配,想不到解法,学习了别人的代码,原来是分治,长知识了。。。分治的思想是确定一个配对后,然后去解决确定配对的左边和右边。那么如何保证两边一定有解呢?方法比较巧妙。假设当前处理的区间为,我们先在区间内找到最下、最左的点,然后将这个区间内的其他点按极角排序,找出一个合法匹配。 ...原创 2018-08-11 23:17:28 · 333 阅读 · 0 评论