区间求差 hihocoder 1305
来源:互联网 发布:怎么通过mac地址查ip 编辑:程序博客网 时间:2024/06/05 17:43
题目大意:给定 A B两个区间,求在A区间不在B区间的线段长度
这个题一开始的时候想用线段树做,但是耗内存太多了,后来发现 我们对一个区间标记他的左右端点,遇到左端点+1,遇到右端点-1,这就可以判断某个点是否在区间内,同样这道题也用这样的方法,把所有的端点排序,当某一个端点在A内不在B内的时候,它到下一个断定建的距离,一定是要求的距离
#include <bits/stdc++.h>using namespace std;struct node{ int dir,group,num;};vector<node>line;bool cmp(node a,node b){ return a.num<b.num;}int main(){ int n,m; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) { node x,y; x.dir=0; y.dir=1; x.group=0; y.group=0; scanf("%d%d",&x.num,&y.num); line.push_back(x); line.push_back(y); } for(int i=1;i<=m;i++) { node x,y; x.dir=0; y.dir=1; x.group=y.group=1; scanf("%d%d",&x.num,&y.num); line.push_back(x); line.push_back(y); } // int k=(n+m)*2; sort(line.begin(),line.end(),cmp); int vis[2]; vis[0]=vis[1]=0; int ans=0; for(int i=0;i<line.size();i++) { int t=line[i].group; if(line[i].dir==0)vis[t]++; else vis[t]--; if(vis[0]>0&&vis[1]<=0) { ans+=line[i+1].num-line[i].num; } } cout<<ans<<endl; return 0;}
阅读全文
0 0
- hihocoder 1305 区间求差
- 区间求差 hihocoder 1305
- [hihoCoder] #1305 : 区间求差 解题报告
- hihocoder 1305 区间求差(经典问题)
- hihocoder 1305 区间求差 经典思维+技巧
- HihoCoder 一下 第152周 区间求差
- hiho1305区间求差
- 区间求差
- 152周 区间求差
- 线段树求区间最大值与最小值的差
- hihocoder 1483 区间价值
- 区间价值 HihoCoder
- hihocoder 1553 区间统计
- hihoCoder 1077 RMQ问题再临-线段树 单点修改,求区间最小值
- 求差
- poj3264 Balanced Lineup(求区间的最大值与最小值之差)
- NYOJ 119 士兵杀敌(三)(线段树—求区间最大值与最小值差)
- POJ 3264 Balanced Lineup(线段树—求区间最大值与最小值差)
- DOM扩展
- linux-Centos7安装python3并与python2共存
- 红楼解梦五--饥饿疗法
- hdu 3938 Portal ( 离线并查集)
- PAT乙级1007. 素数对猜想 (20)
- 区间求差 hihocoder 1305
- 在c++中,有哪4个与类型转换相关的关键字,这些关键字各有什么特点,应该在什么场合下使用?
- 理解数据库 1NF 2NF 3NF BCNF
- python是动态语言
- i.MX6Q的qnx调试笔记---安装IDE和编写BSP,boot启动板子
- Webpack搭建完整Typescript开发环境
- Windows主机连接Windows虚拟机上Oracle数据库
- if语句的运用:用C语言解决奖金发放和出租车费问题。
- mysql下出现Unknown column 'id' in 'on clause'的解决方法