基础代码-线段
来源:互联网 发布:局域网监控软件 编辑:程序博客网 时间:2024/06/05 11:42
问题 B: 线段
时间限制: 1 Sec 内存限制: 128 MB题目描述
考虑一些在实数轴上的线段,你需要写一个程序处理以下两种询问:
1. 询问 + L R 增加一条线段 [L, R],你的程序应该输出有多少条线段被 该线段包含(非严格)。
2. 询问 - L R 删除线段 [L, R],如果这条线段不存在则忽略这个询问。
输入
输入文件的每一行都包含一个询问,格式如题目所述,你的程序应该 处理到文件结束为止。
输出
对于每一个 “+” 询问,输出一个整数,代表被该线段包含的线段条 数。
样例输入
+ 1 2+ 1 2+ 0 3- 1 2+ 1 2
样例输出
0121
提示
对于所有数据,询问的个数不超过 25000个,任意时刻数轴上的线段 不超过 1000条, L, R 均在 32 位有符号整数的表示范围之内。
这题只需要简单模拟。将l与r依次存入,删除时将删组之后的组都往前移一位即可。
Code:
var ch:char;i,j,x,y,ans,tot:longint; l,r:array[1..1005] of longint; procedure add(x,y:longint); begin inc(tot); l[tot]:=x;r[tot]:=y; end; begin while not(eof) do begin read(ch); if ch='+' then begin readln(x,y); ans:=0; for i:=1 to tot do if (x<=l[i])and(y>=r[i]) then inc(ans); add(x,y); writeln(ans); end else begin readln(x,y); for i:=tot downto 1 do if (l[i]=x)and(r[i]=y) then begin for j:=i to tot-1 do begin l[j]:=l[j+1]; r[j]:=r[j+1]; end; dec(tot); break; end; end; end; end.
阅读全文
0 0
- 基础代码-线段
- 线段树-基础,典型例题的完整代码
- 线段树基础
- 基础线段树
- 线段树基础题
- 线段树 基础
- 线段树基础篇
- POJ2528线段树基础
- 线段树基础
- 线段树基础 poj2104
- 线段树基础 poj2352
- 线段树基础
- 算法基础 - 线段树
- 线段树-基础
- HDU1556 - 线段树基础
- 线段树基础总结
- 线段树基础入门
- 线段树基础
- 【2017 ACM/ICPC Asia Regional Shenyang Online 1005】hdu 6198 number number number
- 程序1
- 一篇文章搞懂DOM
- 《Deep Filter Banks for Texture Recognition and Segmentation》
- Redis集群方案:高性能
- 基础代码-线段
- Linux面试题
- linux 系统之DNS高速缓存以及DDNS动态域名服务的配置
- 9.10
- 617. Merge Two Binary Trees
- Poj3321 Apple Tree【DFS序】【树状数组】
- 【MyBatis学习之宏观总结】
- ffplay播放视频出现segment fault问题分析和解决
- Android-monkey测试fd泄露