AT_agc068_c.[AGC068C] Ball Redistribution
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有 N 个盒子,编号从 1 到 N ,有 N 个球,编号从 1 到 N 。
你给 Snuke 布置了以下程序作为家庭作业。
- 将每个球放入他喜欢的任何盒子中。同一个盒子里可以放多个球,也可以有盒子里不放球。
- 按顺序对 i=1,2,⋯,N 进行以下操作。
- 如果盒子 i 中没有球,则什么也不做。
- 否则如果盒子 i 中有球,则取出所有的球,按任意顺序排列。假设 k 是取出的球数, (x1,x2,⋯,xk) 是排成一行的球的编号。对于每个 1≤j≤k ,将球 xj 放入盒子 xj+1 。这里, xk+1 表示 x1 。所有这些将球放入盒子的操作都是同时进行的。
Snuke 说他已经完成了作业,并向你报告了最终状态。具体地说,他说操作完成后,球 i 在盒子 Ai 中。
你怀疑他是否正确执行了程序。请判断他报告的状态是否是程序的可能结果。
1 个输入有 T 个测试用例。
制约
- 1≤T≤250000
- 1≤N≤250000
- 1≤Ai≤N
- 每个测试点中所有测试用例的 N 之和最多为 250000。
- 所有输入值均为整数。
输入格式
输入内容由标准输入提供,格式如下
T
case1
case2
⋮
caseT
每个测试用例的格式如下:
N
A1 A2 ⋯ AN
输出格式
对于每个测试用例,如果 Snuke 报告的状态是程序的可能结果,则打印 Yes,否则打印 No。
样例 1 解释
样本输出 1
下面的步骤产生了 Snuke 报告的状态,所以答案是 Yes。
- 将球 1,2,3 分别放入盒子 1,1,2 中。
- 取出盒子 1 中的球,并将它们排列为 (2,1) 。
- 将球 2 放入盒子 1 。
- 将球 1 放入盒子 2 。
- 从盒子 2 中取出球,摆成 (1,3) 的样子。
- 将球 1 放入盒子 3 。
- 将球 3 放入盒子 1 。
- 从盒子 3 中取出球,按 (1) 的方式摆放。
- 将球 1 放入盒子 1 。
- 现在再把球 1,2,3 全部放入盒子 1 。
输入输出样例
输入#1
5 3 1 1 1 3 2 2 2 5 1 2 3 4 5 10 8 3 8 10 1 5 3 1 6 4 10 1 5 1 2 4 8 8 6 7 3
输出#1
Yes No Yes No Yes
输入解题思路,AI测评打分。不知道怎么写?