HihoCoder 一下 第152周 区间求差
来源:互联网 发布:nba2012东部决赛数据 编辑:程序博客网 时间:2024/06/05 02:38
题目1 : 区间求差
时间限制:10000ms
单点时限:1000ms
内存限制:256MB
- 样例输入
3 22 5 4 10 14 181 3 8 15
- 样例输出
8
描述
给定两个区间集合 A 和 B,其中集合 A 包含 N 个区间[ A1, A2 ], [ A3, A4 ], ..., [ A2N-1, A2N ],集合 B 包含 M 个区间[ B1, B2 ], [ B3, B4 ], ..., [ B2M-1, B2M ]。求 A - B 的长度。
例如对于 A = {[2, 5], [4, 10], [14, 18]}, B = {[1, 3], [8, 15]}, A - B = {(3, 8), (15, 18]},长度为8。
输入
第一行:包含两个整数 N 和 M (1 ≤ N, M ≤ 100000)。
第二行:包含 2N 个整数 A1, A2, ..., A2N (1 ≤ Ai ≤ 100000000)。
第三行:包含 2M 个整数 B1, B2, ..., B2M (1 ≤= Bi ≤ 100000000)。
输出
一个整数,代表 A - B 的长度。
先对A,B 化简 -- 然后求交即可。
代码:
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;struct node{ int x,y;}A[5][100100];bool cmp(node x,node y){ return x.x<y.x;}int n,m,n1,m1;int ss(){ sort(A[1]+1,A[1]+1+n,cmp); sort(A[2]+1,A[2]+1+m,cmp); n1=m1=0; int ans=0; int i=1,x,y; while (i<=n) { x=A[1][i].x; y=A[1][i].y; i++; while (i<=n&&A[1][i].x<=y){ y=max(y,A[1][i].y); i++; } n1++; A[3][n1].x=x; A[3][n1].y=y; ans+=y-x; } i=1; while (i<=m) { x=A[2][i].x; y=A[2][i].y; i++; while (i<=m&&A[2][i].x<=y){ y=max(y,A[2][i].y); i++; } m1++; A[4][m1].x=x; A[4][m1].y=y; } return ans;}int sp(int i,int j){ return max(0,min(A[3][i].y,A[4][j].y)-max(A[3][i].x,A[4][j].x));}int ans(){ int ans=0; int i,j; i=j=1; while (i<=n1&&j<=m1){ ans+=sp(i,j); if (A[3][i].y>A[4][j].y) j++; else if (A[3][i].y<A[4][j].y) i++; else i++,j++; } return ans;}int main(){ scanf("%d%d",&n,&m); for (int i=1;i<=n;i++) scanf("%d%d",&A[1][i].x,&A[1][i].y); for (int i=1;i<=m;i++) scanf("%d%d",&A[2][i].x,&A[2][i].y); printf("%d\n",ss()-ans()); return 0;}
阅读全文
0 0
- HihoCoder 一下 第152周 区间求差
- hihocoder 1305 区间求差
- 区间求差 hihocoder 1305
- [hihoCoder] #1305 : 区间求差 解题报告
- hihocoder 1305 区间求差(经典问题)
- 152周 区间求差
- hihocoder 1305 区间求差 经典思维+技巧
- 【区间问题】 hiho一下第152周
- hiho1305区间求差
- 区间求差
- [HiHoCoder]三分·三分求极值[hiho一下 第四十周]
- hihocoder第57周hiho一下#1196 : 高斯消元·二
- hiho一下 第133周 2-SAT·hihoCoder音乐节
- Hihocoder hiho一下 第140周 清理海报
- Hihocoder hiho一下 第141周 题目1 : 自行车架
- hihoCoder hiho一下 第148周--Font Size (模拟)
- [hihocoder]hiho一下 第163周 希尔伯特曲线
- hihocoder 第139周
- Instagram 在 PyCon 2017 的演讲摘要
- sql执行顺序
- React Native实现弹出选择框
- 67 C语言字符串的输入输出
- 第五篇 在线求助与基本操作
- HihoCoder 一下 第152周 区间求差
- 离散复习资料之一(Fleury算法)
- 笔记LNK2019:无法解析的外部符号
- 管道
- JAVA_Day_04(switch,for,while;水仙花数,九九表,珠穆朗玛峰;break,continue,return)
- centos 系统下安装composer
- css一些常用用法
- angular2 ngx-bootstrap modal模态框不在最上层
- LINUX(CentOS)下LATEX安装