分块||离散化
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 · 433 阅读 · 0 评论 -
cf div3 E2. Array and Segments (选区间进行-1,使数组差值最大)
题目链接给一个长度为n的数组,和m个区间。每当你选择一个区间,数组中该区间内的数值全部减1,每个区间最多选一次。问数组内元素的差值(最大值-最小值)最大是多少。 注意事项:离散化分块。这里离散化遇到了问题,假如某个区间的左右端点相同(长度为1),那么去重时会把该区间删除掉。所以,可以将题目给定的 [l,r] 改为 [l,r+1) 再进行离散化。 #incl...原创 2019-02-15 16:45:42 · 244 阅读 · 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 · 824 阅读 · 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 secondusing namespace std;con...原创 2019-02-09 21:41:46 · 286 阅读 · 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 评论