分块||离散化
lixuwei2333
这个作者很懒,什么都没留下…
展开
-
Frank Sinatra【树上莫队】【分块】【区间mex】
题目链接:https://vjudge.net/problem/Gym-100962F 题目大意:给你一棵树,边有边权,每次询问一条链上边权集合的mex。 用莫队加分块维护区间mex。 有一个很重要的点是,边权最大到1e9,但是显然大于 N 的权值对答案一定没有贡献,这样的话数组就可以开的下了。 #include <bits/stdc++.h> #define rep(...原创 2019-10-25 16:46:31 · 412 阅读 · 0 评论 -
cf div3 E2. Array and Segments (选区间进行-1,使数组差值最大)
题目链接 给一个长度为n的数组,和m个区间。 每当你选择一个区间,数组中该区间内的数值全部减1,每个区间最多选一次。 问数组内元素的差值(最大值-最小值)最大是多少。 注意事项: 离散化分块。 这里离散化遇到了问题,假如某个区间的左右端点相同(长度为1),那么去重时会把该区间删除掉。 所以,可以将题目给定的 [l,r] 改为 [l,r+1) 再进行离散化。 #incl...原创 2019-02-15 16:45:42 · 242 阅读 · 1 评论 -
Covered Points Count(m次区间覆盖,求覆盖次数从1-n的点的个数)
题目链接 离散化就可以了,代码是以前写的,看起来有些莫名奇妙。 为了防止长度为1的区间对离散化去重造成的影响,这里将区间改为左闭右开区间进行离散化。 #include <bits/stdc++.h> #define ll long long #define pll pair<ll,ll> #define fir first #define sec second...原创 2019-02-15 16:55:31 · 812 阅读 · 0 评论 -
D. The Union of k-Segments【被覆盖K次的点组成的区间】
题目链接 此题要考虑坐标轴上两整数点之间的缝隙,所以将坐标乘2后离散化,另外还需要把左右的点一起离散化。 #include<bits/stdc++.h> #define ll long long #define pii pair<int,int> #define fir first #define sec second using namespace std; con...原创 2019-02-09 21:41:46 · 280 阅读 · 0 评论 -
数列分块模板
操作1:区间开方 操作2:区间求和 #include <bits/stdc++.h> #define ll long long #define mp make_pair #define pb push_back #define rep(i,a,b) for(ll i = (a); i <= (b); i++) #define per(i,a,b) for(ll i = (a...原创 2019-03-15 20:11:19 · 127 阅读 · 0 评论