首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
[CERC2017]Intrinsic Interval——扫描线+转化思想+线段树
】的更多相关文章
[CERC2017]Intrinsic Interval——扫描线+转化思想+线段树
[CERC2017]Intrinsic Interval https://www.luogu.org/blog/ywycasm/solution-p4747# 这种“好的区间”,见得还是比较多的了. mx-mi=r-l 比较经典的题是统计这样的区间个数.可以分治+大力分类讨论mx,mi的位置 但是这个题是一个询问. 先观察一些显而易见的性质: 1.好的区间的交也是好的区间 2.好的区间的并也是好的区间 所以,考虑对于一个询问,如果往后固定r找到了一个[L,R]的L左边最靠后的l,使得[l,r]是…
BNU 28887——A Simple Tree Problem——————【将多子树转化成线段树+区间更新】
A Simple Tree Problem Time Limit: 3000ms Memory Limit: 65536KB This problem will be judged on ZJU. Original ID: 368664-bit integer IO format: %lld Java class name: Main Prev Submit Status Statistics Discuss Next Type: None None Graph Theory 2-…
[CERC2017]Intrinsic Interval(神仙+线段树)
题目大意:给一个1-n的排列,有一堆询问区间,定义一个好的区间为它的值域区间长度等于它的区间长度,求包这个询问区间的最小好的区间. 题解 做法太神了,根本想不到. %%%i207m. 结论:当一个区间中相邻的数的对数等于区间长度-1,那么这个区间是好的区间,证明:*%%%%……*%%¥. 所以我们可以用扫描线对1-n扫一遍,用线段树维护i-now的相邻的数的对数,如果我们令a[i]+=i;那么当我们做到r时且a[l]=r,那么l到r是好区间. 然后我们对于每个询问按照l从大到小做,如果找不到就b…
[CERC2017]Intrinsic Interval[scc+线段树优化建图]
题意 给定一个长度为 \(n\) 的排列,有 \(q\) 次询问,每次询问一个区间 \([l,r]\) ,找到最小的包含 \([l,r]\) 的区间,满足这个区间包含了一段连续的数字. \(n\leq 10^5\) 分析 考虑相邻的两个位置 \(i,i+1\),记两个位置的值为 $ x ,y(x< y)$ 如果要出现在答案里,要满足 \(val \in[x,y]\) 都出现. 用权值线段树维护一段权值区间出现位置的最左最右端 \([l,r]\),显然位置 \(p \in[l,r]\) 都要在区间…
洛谷 P4747 [CERC2017]Intrinsic Interval 线段树维护连续区间
题目描述 题目传送门 分析 考虑对于 \([l,r]\),如何求出包住它的长度最短的好区间 做法就是用一个指针从 \(r\) 向右扫,每次查询以当前指针为右端点的最短的能包住 \([l,r]\) 的好区间 第一个查询到的就是想要的区间 一定不会存在一个与这个区间交叉的区间更优的情况 因为这种情况两个区间交叉的部分一定会在之前被查询到 这样的话就可以把所有的询问离线下来,按照右端点从小到大排序依次处理 只需要快速地查询长度最短的好区间即可 这可以用线段树去维护 我们把线段树的节点定义为以某个点为左…
线段树(单标记+离散化+扫描线+双标记)+zkw线段树+权值线段树+主席树及一些例题
“队列进出图上的方向 线段树区间修改求出总量 可持久留下的迹象 我们 俯身欣赏” ----<膜你抄> 线段树很早就会写了,但一直没有总结,所以偶尔重写又会懵逼,所以还是要总结一下. 引言 在生活和竞赛中,我们总是会遇上一些问题,比如说令人厌恶的统计成绩,老师会想询问几个人中成绩最低的是谁...... 于是问题出现了. e.g.1(暴力膜不可取) 已知班上有50个学生,学号分别为1-50,老师想问学号为a-b之间的最低分是多少 比如 2 5 3 4 1中 2-4 之间的最小值为 3…
BZOJ4561:圆的异或并(扫描线+set||splay||线段树)
在平面直角坐标系中给定N个圆.已知这些圆两两没有交点,即两圆的关系只存在相离和包含.求这些圆的异或面 积并.异或面积并为:当一片区域在奇数个圆内则计算其面积,当一片区域在偶数个圆内则不考虑. Input 第一行包含一个正整数N,代表圆的个数.接下来N行,每行3个非负整数x,y,r,表示一个圆心在(x,y),半径为r的 圆.保证|x|,|y|,≤10^8,r>0,N<=200000 Output 仅一行一个整数,表示所有圆的异或面积并除以圆周率Pi的结果. Sample Input 2…
【HDU4630 No Pain No Game】 dp思想+线段树的离线操作
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4630 题意:给你n个数据范围在[1,n]中的数,m个操作,每个操作一个询问[L,R],让你求区间[L,R]内任意两个数的最大公倍数. 思路:是线段树是必然的 O.O .顺着来不好解决,只能离线处理试试.按r从小到大排序,数组a[i]从左到右扫一遍,对每个a[i]都要进行处理,先因数分解,pre[X]表示约数X在前面最后出现的位置.开始处理的是pre[X]到当前位置r都对约数X进行比较更新,后面想想这…
HDU2795 billboard【转化为线段树。】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2795 hhanger大神的题目,水题都得有点思维. 题意:h*w的木板,放进一些1*L的物品,求每次放空间能容纳且最上边的位子 思路:每次找到最大值的位子,然后减去L 线段树功能:query:区间求最大值的位子(直接把update的操作在query里做了) 技巧挺好,一开始自己思路建个超大二维数组,显然内存不够. 然后. 线段树的话其实就是深搜,if(l==r) 返回的肯定是最左边的结点,哈~ 判…
[CERC2017] Intrinsic Interval
首先理清这奇葩题意表述 给出一个\(1\)到\(n\)的排列\(p[]\)和\(m\)次询问,每次询问覆盖区间\([l,r]\)的最小区间\([a,b]\),满足\([a,b]\)内的元素排序后是连续整数序列.\(n,m\le 10^5,\;1\le l\le r\le n\). 方便表述,称满足(省略)的区间是"好"的,否则是"坏"的,钦定空区间是"好"的. 罗列一些可能用到的.很显然的性质 好区间的长度等于最大值与最小值之差: 不相离的两个好…