题目名称 | 3075. 线段计数 |
---|---|
输入输出 | segment_count.in/out |
难度等级 | ★★☆ |
时间限制 | 1000 ms (1 s) |
内存限制 | 128 MiB |
测试数据 | 10 |
题目来源 | syzhaoss 于2019-01-29加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:1, 提交:3, 通过率:33.33% | ||||
梦那边的美好ET | 100 | 1.149 s | 12.31 MiB | C++ |
咸鱼四号 | 40 | 6.515 s | 9.36 MiB | C++ |
梦那边的美好ET | 0 | 50.000 s | 11.55 MiB | C++ |
关于 线段计数 的近10条评论(全部评论) |
---|
小 Z 是一个聪明的孩子,因此经常能收到礼物。
有一天,小 Z 从小 P 那里得到了长度为1,2,3…的线段作为礼物,聪明的小 Z想将这些线段摆放在数轴上。第i次插入操作,将长度为i的线段放在数轴上,每一次插入操作后,他都会统计刚刚插入的线段完全覆盖了之前多少条线段。聪明的小 Z 觉得只插入线段太简单了,于是他又添加了删除的操作,对于删除操作,他都会从数轴上删掉第k次插入的线段(线段是相互独立的),现在请你来帮助小Z 解决这个问题。
每个测试点包含多组测试数据。
输入的第一行为一个正整数T,表示测试数据的组数。
每组测试数据包含n + 1行。
第一行包含一个正整数n,代表操作的次数,接下来n行每行包含一个操作,每个操作用两个整数x和y表示。
如果x是 0,表示插入操作,小 P 在y位置插入一条线段(对于第i次插入的线段,线段将被插入到[y,y+i],长度为i)。
如果x是 1,表示删除操作,小 P 会删除第y次插入操作插入的线段。
对于每组测试数据,首先输出一行"Case #i:"(不包含引号),表示第 i 组测试数据的输出。
接着对于每次的插入操作,按题目要求输出答案。
2
5
0 1
0 3
0 5
1 3
0 2
5
0 1
0 1
1 1
0 2
0 1
Case #1:
0
0
0
1
Case #2:
0
1
0
2
对于第一组数据:
第一次插入[1,2]线段,没有完全覆盖任何线段,输出 0;
第二次插入[3,5]线段,没有完全覆盖任何线段,输出 0;
第三次插入[5,8]线段,没有完全覆盖任何线段,输出 0;
删除第三次插入的线段;
第四次插入[2,6]线段,完全覆盖第二次插入的线段,输出 1。
对于 10%的测试数据,满足1 ≤ n ≤ 100。
对于 30%的测试数据,满足1 ≤ n ≤ 2000。
对于 70%的测试数据,满足1 ≤ n ≤ 50000。
对于 100%的测试数据,满足1 ≤ T ≤ 5,1 ≤ n ≤ 200000;
对于插入操作满足 |y| < 10^9;
对于删除操作,保证y合法,每个线段最多会被删除 1 次。