CF2066E.Tropical Season
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
您有 n 个容量无限的桶。第 i 个桶初始装有 ai 千克水。在此问题中,我们假设所有桶自身重量相同。
已知恰好有一个桶的表面含有少量热带毒药,总重量为 0.179 千克。但您不知道具体是哪个桶含有毒药。您的任务是确定这个有毒的桶。
所有桶都放置在秤上。然而秤不会显示每个桶的确切重量,而是为每对桶显示它们的重量比较结果。因此,对于任意两个桶,您可以判断它们的重量是否相等,若不相等则可知哪个桶更重。毒药和水的重量均计入桶的总重量。
秤始终处于开启状态,其信息可无限次使用。
您还可以进行倒水操作:可以将任意数量的水从任意一个桶倒入另一个桶(两者可为不同桶)。
但倒水时,您必须物理接触被倒出的桶。如果该桶恰好是含毒桶,您将死亡。必须避免这种情况发生。
但您可以将水倒入含毒桶而无需触碰它。
换言之,您可以选择参数 i,j,x(i=j,1≤i,j≤n,0<x≤ai,且编号 i 的桶不含毒)并执行操作 ai:=ai−x,aj:=aj+x。其中 x 不必是整数。
在利用倒水操作和秤的信息时,能否保证确定含毒桶的同时存活?已知毒药必定存在于恰好一个桶中。
此外,您需要处理 q 次查询。每次查询将移除一个现有桶,或添加一个装有指定水量新桶。每次查询后,您需要回答在恰好存在一个含毒桶的条件下,能否保证确定该桶。
输入格式
第一行包含两个整数 n 和 q(1≤n,q≤2⋅105)。
第二行包含 n 个整数 a1,a2,…,an(1≤ai≤106)——现有桶中的水量。
接下来 q 行每行包含一个查询,格式为 + x 或 - x,分别表示添加和移除一个装有 x 千克水的桶。保证执行 - x 查询时存在水量为 x 的桶,且所有查询后至少保留一个桶。所有查询中 1≤x≤106。
输出格式
输出 q+1 行,依次为初始状态及每次查询后的答案。若可确定含毒桶则输出 "Yes",否则输出 "No"。输出不区分大小写(如 "yEs"、"YES" 等均视为肯定回答)。
输入输出样例
输入#1
4 7 2 2 4 11 - 2 + 4 + 30 + 40 - 4 + 2 + 2
输出#1
Yes No Yes No Yes No No Yes
输入#2
6 7 5000 1000 400 400 100 99 + 1 - 5000 - 1 - 400 - 400 - 100 - 99
输出#2
No Yes Yes Yes No No No Yes
说明/提示
第一个测试案例中,初始桶的水量为 [2,2,4,11]。可先比较第一和第二个桶的重量:若不等则可断定较重桶含毒;若相等则二者均不含毒。接着可将第一桶所有水倒入第二桶,此时第二和第三桶均有 4 千克水。再次比较二者重量:若不等则较重桶含毒;否则二者均不含毒。唯一可能含毒的桶变为第四个。通过此策略可安全确定含毒桶。
翻译由 DeepSeek R1 完成
输入解题思路,AI测评打分。不知道怎么写?