【JZOJ6285】飘雪圣域
description

analysis
- 从求联通块出发根本没做法,于是考虑连通块里面的边 
- 对于一个询问\([l,r]\),一条边的左端点\(≥l\)且右端点\(≤r\)才在这个区间的点之间 
- 于是对于边和询问排序,依次把边加入树状数组,然后查询当前询问区间里的边条数就知道了联通块个数 
code
#pragma GCC optimize("O3")
#pragma G++ optimize("O3")
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define MAXN 200005
#define ll long long
#define reg register ll
#define fo(i,a,b) for (reg i=a;i<=b;++i)
#define fd(i,a,b) for (reg i=a;i>=b;--i)
using namespace std;
ll tr[MAXN];
ll n,q;
struct edge
{
	ll x,y;
}a[MAXN];
struct inquiry
{
	ll x,y,z,ans;
}b[MAXN];
inline ll read()
{
	ll x=0,f=1;char ch=getchar();
	while (ch<'0' || '9'<ch){if (ch=='-')f=-1;ch=getchar();}
	while ('0'<=ch && ch<='9')x=x*10+ch-'0',ch=getchar();
	return x*f;
}
inline ll lowbit(ll x){return x&(-x);}
inline bool cmp(edge a,edge b){return a.y<b.y;}
inline bool cmpp(inquiry a,inquiry b){return a.y<b.y;}
inline bool cmppp(inquiry a,inquiry b){return a.z<b.z;}
inline void modify(ll x,ll y){while (x<=n)tr[x]+=y,x+=lowbit(x);}
inline ll query(ll x){ll y=0;while (x)y+=tr[x],x-=lowbit(x);return y;}
inline ll get(ll x,ll y){return query(y)-query(x-1);}
int main()
{
	freopen("icekingdom.in","r",stdin);
	//freopen("icekingdom.out","w",stdout);
	n=read(),q=read();
	fo(i,1,n-1)
	{
		ll x=read(),y=read();
		a[i].x=min(x,y),a[i].y=max(x,y);
	}
	sort(a+1,a+n,cmp);
	fo(i,1,q)b[i].x=read(),b[i].y=read(),b[i].z=i;
	sort(b+1,b+q+1,cmpp);ll j=1;
	fo(i,1,q)
	{
		while (j<n && b[i].y>=a[j].y)modify(a[j++].x,1);
		b[i].ans=b[i].y-b[i].x+1-get(b[i].x,b[i].y);
	}
	sort(b+1,b+q+1,cmppp);
	fo(i,1,q)printf("%lld\n",b[i].ans);
	return 0;
}
【JZOJ6285】飘雪圣域的更多相关文章
- 飘雪圣域(icekingdom)
		飘雪圣域(icekingdom) 题目描述 IcePrincess_1968 和 IcePrince_1968 长大了,他们开始协助国王 IceKing_1968 管理国内事物. IcePrinces ... 
- [CSP-S模拟测试]:飘雪圣域(莫队)
		题目描述 $IcePrincess\text{_}1968$和$IcePrince\text{_}1968$长大了,他们开始协助国王$IceKing\text{_}1968$管理国内事物. $IceP ... 
- csps模拟测试74梦境,玩具,飘雪圣域题解
		题面:https://www.cnblogs.com/Juve/articles/11679226.html 梦境: 其实还是挺水的,排序错了过不了样例,打了个二分图匹配就跑了 #include< ... 
- 「10.15」梦境(贪心)·玩具(神仙DP)·飘雪圣域(主席树\树状数组\莫队)
		A. 梦境 没啥可说的原题.... 贪心题的常见套路我们坐标以左端点为第一关键字,右端点为第二关键字 然后对于每个转折点,我们现在将梦境中左端点比他小的区间放进$multiset$里 然后找最近的右端 ... 
- [考试反思]1015csp-s模拟测试74:压迫
		其实同时也是第27,一大片并列的. 真的是越考越烂. T1是个弱化的贪心原题,15分钟拿下没什么可说的. T2打的记忆化搜索,hash_mod太小撞哈希了,50->30 T3,想不到正解,90分 ... 
- [CSP-S模拟测试74]题解
		A.梦境 如果不用去重一定要用Multiset……挂30分算是出题人手下留情了. 贪心.把点排序,区间按右端点递增排序.依次考虑每个区间,取能选的最靠左的点即可.multiset维护. #includ ... 
- 2017了,回家前 "年末" 分享:下雨,飘雪,红包雨,碰撞球,自定义View
		(本博客为原创:http://www.cnblogs.com/linguanh/) 目录: 效果展示 感想 代码拆解 开源地址 效果展示 有没有兴趣继续看下去,直接看下"颜值"是第 ... 
- css3写出飘雪花特效
		大冬天的,飘雪花的特效,你可能要用上了吧.通常情况下用jQuery写飘雪花的特效,但用css3写,其实特别简单,新手一看就懂,那就告别jQuery,用css3轻松搞定飘雪花特效吧! 点击查看特效演示 ... 
- 如何在你的blog中添加炫酷的飘雪动画效果
		将下面的代码复制到你的设置栏下页眉html代码框中即可 <script> (function($){$.fn.snow=function(options){,maxSize:,newOn: ... 
随机推荐
- 同域SQL server 做镜像服务器遇到1418错误
			今天遇到了如题所说的错误,查了一天没有看到好的解决方案,因为作者是小白,所以对于解决方案都是代码的那种,完全理解不了. 现在,讲述一下我的解决方法.因为是同域的服务器,这个时候说网络访问不了对方,但是 ... 
- soapui基础知识
			一.基础知识 1.测试步骤(teststep)为最小单位,一个完整的测试用例由多个测试步骤组成: 2.一个测试用例(testcase)代表一个完整的操作 3.测试集(testsuite)主要是为了区分 ... 
- 通过list中值得名称查询索引号
			>>> a = ['www','iplaypython','com']>>> a.index('iplaypython') 
- 【JS学习】慕课网4-10 编程练习
			在一个大学的编程选修课班里,我们得到了一组参加该班级的学生数据,分别是姓名.性别.年龄和年级,接下来呢,我们要利用JavaScript的知识挑出其中所有是大一的女生的的名字哦. 学生信息如下: ('小 ... 
- 【Luogu】【关卡2-15】动态规划的背包问题(2017年10月)【还差一道题】
			任务说明:这是最基础的动态规划.不过如果是第一次接触会有些难以理解.加油闯过这个坎. 01背包二维数组优化成滚动数组的时候有坑有坑有坑!!!必须要downto,downto,downto 情景和代码见 ... 
- QDomDocument::clear()的调用,会导致关闭程序时崩溃!!!
			//读一份xml前,先清理m_Doc[QDomDocument] bool XmlIO::xmlRead(QString &errmsg) { m_mutex.lock(); // m_Doc ... 
- linux IPC共享内存
			共享内存相关函数 获得一个共享存储标识符 #include <sys/ipc.h> #include <sys/shm.h int shmget(key_t key, size_t ... 
- Linux下安装PHP的mcrypt扩展
			首先下载,并安装 libmcrypt-2.5.8.tar.gz 下载地址: http://sourceforge.net/project/showfiles.php?group_id=87941&am ... 
- RN 真机roload
			第四步:打开调试菜单 手机设备可以通过摇一摇设备打开调试菜单,也可以打开调试菜单. 可因为是平板,摇一摇不是太方便,可以在电脑端运行命令来打开调试菜单,但有时却又无法打开调试菜单(如果是使用真机调试, ... 
- Hadoop-HDFS的伪分布式和完全分布式集群搭建
			Hadoop-HDFSHDFS伪分布式集群搭建步骤一.配置免密登录 ssh-keygen -t rsa1一句话回车到底 ssh-copy-id -i ~/.ssh/id_rsa.pub root@no ... 
