A4759 | 聪明图
时间限制1s
内存限制512MB
通过 / 提交0/0
题目描述
Yuilice会给聪明的你一个$n$个点的有向图,在初始时只有$i$连向$i+1$的边($i < n$)。
你可以进行三种不同的操作:
1. 增加一条边
2. 删除一条边 (保证这条边存在)
3. 询问以$x$为起点能到达的点的个数。
现在,请你根据每一次操作3输出对应的内容~
请注意我们保证每次操作后都会满足对于$i<n$存在从$i$连向$i+1$的边,可能出现重边或自环。
你可以进行三种不同的操作:
1. 增加一条边
2. 删除一条边 (保证这条边存在)
3. 询问以$x$为起点能到达的点的个数。
现在,请你根据每一次操作3输出对应的内容~
请注意我们保证每次操作后都会满足对于$i<n$存在从$i$连向$i+1$的边,可能出现重边或自环。
输入格式
第一行两个整数$n,Q$。表示点数和操作个数。
接下来$Q$行,每行表示一个操作,具体如下:
1.
2.
3.
接下来$Q$行,每行表示一个操作,具体如下:
1.
1 x y:增加一条从$x$连向$y$的边。2.
2 x y:删除一条从$x$连向$y$的边。注意在有重边的情况下只会删除其中一条。3.
3 x:询问以$x$为起点能到达的点的个数。输出格式
对于每个操作$3$输出一行,每行一个整数表示答案。
输入输出样例
输入 #1
7 8 1 5 3 3 4 3 3 1 7 4 1 5 7 3 6 2 5 3 3 4
输出 #1
5 5 5 4
对于所有测试点,满足$n,Q\leq 5 \times 10^5$。
| 测试点编号 | $n,Q$ | 其他约束 |
|---|---|---|
| $1 \sim 2$ | $\leq 10^3$ | 无 |
| $3 \sim 4$ | $\leq 10^4$ | 无 |
| $5 \sim 8$ | $\leq 10^5$ | 没有操作$2$,且操作$1$都在操作$3$之前 |
| $9 \sim 12$ | $\leq 10^5$ | 没有操作$2$ |
| $13 \sim 16$ | $\leq 10^5$ | 保证每次操作后最多有$10$条新增的边 |
| $17 \sim 18$ | $\leq 10^5$ | 无 |
| $19 \sim 20$ | $\leq 5 \times 10^5$ | 无 |
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?