cdoj1325卿学姐与基本法
地址:http://acm.uestc.edu.cn/#/problem/show/1325
题目:
卿学姐与基本法
Time Limit: 2000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others)
“做专题也要按照基本法”——蛤
离开了诡异的村庄,卿学姐来到了威廉·圣·乱七八糟王国,这里的国王咸鱼王是个智障。
国家涣散,盗贼四起,民不聊生。
见到这样的景象,卿学姐不禁潸然泪下,“悠悠苍天,奈何苦了苍生”。
自幼学习基本法的卿学姐决定向整个国家普及基本法,改善国家法度。
在这个国家总共有NN个人,每个人都有一个编号,编号从1开始。
由于整个国家的人实在是太多了,卿学姐每次只能对一个连续区间的编号的人普及基本法。
同时卿学姐还想知道在某个时刻某个区间还有多少人没有被普及基本法。
Input
第一行两个整数N,QN,Q,表示总共有NN个人,并且有QQ次事件。
接下来QQ行,每行三个整数t,L,Rt,L,R。如果tt是11,代表在这时,卿学姐向闭区间L,RL,R的人普及基本法。如果tt是22,代表在这时,卿学姐想知道闭区间L,RL,R里面有多少人还没有被普及基本法。
1≤N≤1000000001≤N≤100000000
1≤Q≤1000001≤Q≤100000
1≤t≤21≤t≤2
1≤L≤R≤N1≤L≤R≤N
Output
输出每个卿学姐想知道的答案
Sample input and output
| Sample Input | Sample Output |
|---|---|
5 3 |
1 |
一开始不会离散化,直接暴力又TLE,,,好惨==
想到一个不用线段数,离散化什么的做法,
就是每次只记录对区间的修改操作,而不执行。。
用map记录操作,之后好排序什么
然后询问的时候就把询问区间看做线段,用已有线段(就是上面说的对区间的修改操作)进行线段剪裁,把询问区间和排序好的操作区间从左到右一一对比,把询问区间剪裁并执行相应的求和操作;(因为两个线段之间的关系就几种情况,分类讨论就好)
ps:离散化的做法就是对会用到数排个序,然后做个映射就好,再用线段树就不会超内存了
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <queue>
#include <stack>
#include <map>
#include <vector>
#include <cstdlib>
#include <string> #define PI acos((double)-1)
#define E exp(double(1))
using namespace std; map<int,int>q;
map<int,int>::iterator it;
int query(int x,int y)
{
// if(x==31)
// {
// int cds=0;
// }
int l=x,r=y,ans=y-x+;
for(it=q.begin();it!=q.end();it++)
{
int a=it->first,b=it->second;
if(a>r)
return ans;
else if(b<l)
continue;
else if(a<l&&r<b)
return ans-=r-l+;
else
{
if(a<=l && b<=r)
ans-=b-l+,l=b+;
else if(a>l && b<=r)
ans-=b-a+,l=b+;
else
return ans-=r-a+;
}
}
return ans;
}
int main (void)
{ //freopen("test.txt","r",stdin);
//freopen("ans1.txt","w",stdout);
int t,n,op,x,y;
scanf("%d%d",&n,&t);
while(t--)
{
scanf("%d%d%d",&op,&x,&y);
if(op==)
{
if(q[x]<y) q[x]=y;
}
else
printf("%d\n",query(x,y));
}
return ;
}
cdoj1325卿学姐与基本法的更多相关文章
- B - 卿学姐与基本法 (离散化+成段更新+区间求和)
卿学姐与基本法 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit S ...
- cdoj 1328 卿学姐与诡异村庄 Label:并查集 || 二分图染色
卿学姐与诡异村庄 Time Limit: 4500/1500MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit ...
- cdoj 1329 卿学姐与魔法 优先队列
卿学姐与魔法 Time Limit: 1200/800MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit Sta ...
- cdoj 1324 卿学姐与公主 线段树裸题
卿学姐与公主 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit St ...
- UESTC - 1324 卿学姐与公主
题目链接 某日,百无聊赖的卿学姐打开了某11区的某魔幻游戏 在这个魔幻的游戏里,生活着一个美丽的公主,但现在公主被关押在了魔王的城堡中. 英勇的卿学姐拔出利刃冲向了拯救公主的道路. 走过了荒野,翻越了 ...
- 卿学姐与公主 UESTC - 1324 分块模板题
题意:http://acm.uestc.edu.cn/#/problem/show/1324 中文题,自己看喽. 题解:分块模板,update时顺便更新块属性.ask时先判掉belong[l]==be ...
- CDOJ 1292 卿学姐种花 暴力 分块 线段树
卿学姐种花 题目连接: http://acm.uestc.edu.cn/#/problem/show/1292 Description 众所周知,在喵哈哈村,有一个温柔善良的卿学姐. 卿学姐喜欢和她一 ...
- CDOJ 1281 暴兵的卿学姐 构造题
暴兵的卿学姐 题目连接: http://acm.uestc.edu.cn/#/problem/show/1281 Description 沈宝宝又和卿学姐开始玩SC2了! 自从沈宝宝学会新的阵型后,就 ...
- cdoj1324卿学姐与公主
地址:http://acm.uestc.edu.cn/#/problem/show/1324 卿学姐与公主 Time Limit: 2000/1000MS (Java/Others) Memo ...
随机推荐
- mysql小技巧记录
1.在mysql场景中,每一行都是用分号(:)作为结束的. 2.在php场景中,最后的分号(:)可以省略掉. 如: <? $sql = "select * from tem" ...
- 蓝桥杯 第三届C/C++预赛真题(4) 奇怪的比赛(递归)
某电视台举办了低碳生活大奖赛.题目的计分规则相当奇怪: 每位选手需要回答10个问题(其编号为1到10),越后面越有难度.答对的,当前分数翻倍:答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错 ...
- 【转载】如何升级linux上的gcc到最新版本
来自:http://www.cppfans.org/1719.html 由于工作主要平台换到了linux上,而linux因为源上没有比较新的gcc,只有4.7,而我们用到了C++11, 只好自己升级了 ...
- Laravel5.1 登录和注册
关于登录和注册 Laravel自带了一套组件实现了这一功能,我们只需要实现简单的视图即可. AuthController是专门管理用户注册和登录的. PassWordController是重置密码用的 ...
- 54、Android 粒子效果之雨(下雨的效果)
核心内容: 1.绘制下雨场景的个体.雨点(直线) 2.让直线动起来 3.处理边界问题 4.构造雨点对象 5.雨点大小设置 6.速度设置和角度设置等 7.添加多个雨点 8.抽离可以在 XML 中影响的属 ...
- hdu 4055(经典问题)
总是不能正确的将一个大问题变成子问题,而且又找不到状态转移方程. 直接导致这题想了5个小时最后还是无果... 谨记! Number String Time Limit: 10000/5000 MS ( ...
- JZOJ.5231【NOIP2017模拟8.5】序列问题
Description Input 输入文件名为seq.in.首先输入n.接下来输入n个数,描述序列 A. Output 输出文件名为seq.out.输出一行一个整数代表答案. Sample ...
- [Vue warn]: Missing required prop: "title"
在写vue项目中,在子组件中通过props传值的时候,在父组件中没有定义的话就会看到类似的报错, 这个意思是calendar这个组件中通过props传递一个title属性给父组件,并且title属性是 ...
- Fluent Ribbon 第八步 其他控件
前七节将Ribbon的功能大致介绍了一番,本节来介绍一些特殊控件的使用 DropDownButton控件 当前控件是显示下拉功能的基本组件,其配合Gallery能实现诸多特殊功能,代码如下所示 < ...
- 巨蟒python全栈开发-第6天 is&==
1.小数据池 2.id 3.decode和encode 小数据池 #小数据池:不要死磕就行#python为了简化,搞出来的一个东西 ID (1)# id()函数可以帮我们查看一个变量的内存地址# a= ...