0734 ABC356_F Distance Component Size Query | OJ题库 | CODE STUDY
CODE STUDY
Programming Practice Platform

欢迎回来

0734

ABC356_F Distance Component Size Query

Easy 时间限制 1000 ms 内存限制 262144 KB
二分 线段树 树状数组

题目详情

返回题库

题目描述

给你一个整数K。对于初始为空的集合S,依次处理以下两种类型的Q查询:

  • 1 x:给出一个整数x。如果x在S中,则从S中删除x。否则,将x添加到S中。
  • 2 x:给出位于S中的整数x。考虑一个图,其中的顶点是S中的数字,并且当且仅当两个数字之间的绝对差最多为K时,这两个数字之间有一条边。请打印包含x的连通部分中的顶点数。

输入描述

第一行Q和K

接下来Q行代表Q个询问

数据范围:

  • 1≤Q≤2×$10^{5}$
  • 0≤≤$10^{18}$
  • 对于每个查询,1≤x≤$10^{18}$
  • 对于第二种类型的每个查询,给定的x在S中。
  • 所有输入值均为整数。

输出描述

按照要求输出答案

提示

样例1:

查询处理过程如下

  • 在第一个查询中,3添加到S,得到={3}。
  • 在第二个查询中,将10添加到S,得到S={3,10}。
  • 在第三个查询中,考虑一个有顶点3和10且没有边的图。包含33的连通部分的大小为1,因此打印1。
  • 在第四个查询中,7添加到S,结果是S={3,7,10}。
  • 在第五次查询中,考虑一个顶点为3、7和10的图,在3和7以及7和10之间有边。包含3的连通部分的大小为3,因此打印3。
  • 在第六次查询中,从S中删除10,得到S={3,7}。
  • 在第七个查询中,考虑一个有顶点3和7的图,在它们之间有一条边。包含3的连通部分的大小为2,因此打印2。

测试样例

样例支持多行内容展示
样例1
输入
7 5
1 3
1 10
2 3
1 7
2 3
1 10
2 3
输出
1
3
2
样例2
输入
11 1000000000000000000
1 1
1 100
1 10000
1 1000000
1 100000000
1 10000000000
1 1000000000000
1 100000000000000
1 10000000000000000
1 1000000000000000000
2 1
输出
10
样例3
输入
8 0
1 1
1 2
2 1
1 1
1 2
1 1
1 2
2 1
输出
1
1
editor.py

提交前会先自动运行样例。只有样例全部通过,才会进入后端正式判题。