AT_arc218_f.Buckets
NOI/NOI+/CTSC
通过率:0%
时间限制:2.00s
内存限制:1024MB
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Problems F and F2 are the same problem with different constraints on M. In Problem F, 1≤M≤4.
You are given a positive integer M. Consider the following problem.
Bucket
You are given a positive integer N and non-negative integer sequences A=(A1,A2,…,AN) and B=(B1,B2,…,BN) of length N. All elements of A and B are between 0 and M, inclusive.
There are N buckets numbered 1 to N. Each bucket can hold up to M liters of water. Initially, bucket i contains Ai liters of water.
You may perform the following operation any number of times.
- Choose two distinct buckets i and j. Continue pouring water from bucket i into bucket j as long as both of the following conditions are satisfied:
- Bucket i still has water remaining.
- The amount of water in bucket j is less than M liters.
Your goal is to have exactly Bi liters of water in bucket i for all i. Determine whether the goal can be achieved.
You are given a non-negative integer matrix X=(Xi,j)(0≤i,j≤M) of (M+1) rows and (M+1) columns. Process the following queries Q times.
-
You are given non-negative integers i,j,Y with 0≤i,j≤M. Change Xi,j to Y. Then, obtain non-negative integer sequences A and B by the following procedure.
-
Initialize non-negative integer sequences A and B as empty sequences.
-
For i=0,1,…,M in this order:
-
For j=0,1,…,M in this order:
-
Do this Xi,j times: append i to the end of A and j to the end of B.
-
-
Solve Bucket for the non-negative integer sequences A and B of length N=∑i=0M∑j=0MXi,j.
题目 F 和 F2 是同一道题,但对 M 的约束不同。在题目 F 中,1≤M≤4。
给定一个正整数 M。考虑如下问题:
水桶问题(Bucket)
给定一个正整数 N,以及两个长度为 N 的非负整数序列 A=(A1,A2,…,AN) 和 B=(B1,B2,…,BN)。A 和 B 的所有元素均在 0 到 M(含端点)之间。
有 N 个编号为 1 至 N 的水桶。每个水桶最多可容纳 M 升水。初始时,第 i 个水桶中含有 Ai 升水。
你可以执行以下操作任意多次:
- 选择两个不同的水桶 i 和 j,并持续将水从水桶 i 倒入水桶 j,直到满足以下任一条件为止:
- 水桶 i 中已无剩余水量;
- 水桶 j 中的水量已达 M 升。
你的目标是使得对每个 i,第 i 个水桶中恰好含有 Bi 升水。请判断该目标是否可达。
给定一个 (M+1)×(M+1) 的非负整数矩阵 X=(Xi,j)(其中 0≤i,j≤M)。你需要处理 Q 个查询。
- 每次查询给出三个非负整数 i,j,Y,满足 0≤i,j≤M。将 Xi,j 修改为 Y;然后按如下步骤生成非负整数序列 A 和 B:
* 初始化两个空的非负整数序列 $A$ 和 $B$; * 按 $i = 0,1,\dots,M$ 的顺序遍历; * 对每个 $i$,再按 $j = 0,1,\dots,M$ 的顺序遍历; * 对每一对 $(i,j)$,重复 $X_{i,j}$ 次:将 $i$ 追加到序列 $A$ 末尾,同时将 $j$ 追加到序列 $B$ 末尾。
- 针对由此生成的、长度为 N=∑i=0M∑j=0MXi,j 的非负整数序列 A 和 B,求解上述 水桶问题(Bucket)。
输入格式
The input is given from Standard Input in the following format:
M Q
X0,0 X0,1 … X0,M
X1,0 X1,1 … X1,M
⋮
XM,0 XM,1 … XM,M
query1
query2
⋮
queryQ
Each query is given in the following format:
i j Y
输入从标准输入中按以下格式给出:
M Q
X0,0 X0,1 … X0,M
X1,0 X1,1 … X1,M
⋮
XM,0 XM,1 … XM,M
query1
query2
⋮
queryQ
每个查询按以下格式给出:
i j Y
输出格式
Output Q lines. The i-th line should contain Yes if the goal can be achieved in queryi, and No otherwise.
输出 Q 行。第 i 行应包含 Yes(如果在 queryi 中可以达成目标),否则包含 No。
输入输出样例
输入#1
3 3 0 0 0 0 0 0 2 0 1 0 0 0 0 0 0 0 0 0 0 2 3 1 2 1 1
输出#1
Yes No Yes
输入#2
4 10 45636788580181785 16131322312654301 43477244591521823 6505049084010674 86530627327096446 95921187347997793 55491565467039163 87684565747362311 80318628430974482 12308092878301956 75570615154690027 96403707363045776 14150012766408204 6612197700307407 64417022692908525 5530468643826479 41731276604630756 15675296751519388 59461896803210859 66666666666666666 72767956047192820 18258893791516726 58852629621892634 33333333333333333 29923985408775019 2 1 26541245644686826 2 4 29485791833729050 4 1 21832826336874318 3 2 4953499115446612 2 0 69217973349997921 2 4 23133150029036944 3 4 55834224798559242 1 2 98517007615469735 2 3 3768060024403703 0 4 87241661746072372
输出#2
No Yes No Yes No Yes No No No No
说明/提示
Sample 1 Explanation:
The first query makes X=0010000002000000, and we obtain A=(1,1,2),B=(2,2,0).
In this case, the goal can be achieved by the following sequence of operations, for example.
- Set i=1,j=2. The amount of water in each bucket changes from (1,1,2) to (0,2,2).
- Set i=3,j=1. The amount of water in each bucket changes from (0,2,2) to (2,2,0).
The second query makes X=0010000002000010, and we obtain A=(1,1,2,2),B=(2,2,0,3).
In this case, the goal cannot be achieved no matter how operations are performed.
The third query makes X=0010001002000010, and we obtain A=(1,1,2,2,2),B=(2,2,0,1,3).
In this case, the goal can be achieved by the following sequence of operations, for example.
- Set i=1,j=2. The amount of water in each bucket changes from (1,1,2,2,2) to (0,2,2,2,2).
- Set i=3,j=1. The amount of water in each bucket changes from (0,2,2,2,2) to (2,2,0,2,2).
- Set i=4,j=5. The amount of water in each bucket changes from (2,2,0,2,2) to (2,2,0,1,3).
Constraints
- 1≤M≤4
- 1≤Q≤106
- 0≤Xi,j,Y≤1017
- 0≤i,j≤M
- ∑i=0M∑j=0MXi,j≥1 at any time.
- All input values are integers.
样例 1 解释:
第一次查询使得 X=0010000002000000,从而得到 A=(1,1,2),B=(2,2,0)。
此时,目标可通过如下操作序列(例如)实现:
- 设 i=1,j=2。各桶中水量由 (1,1,2) 变为 (0,2,2)。
- 设 i=3,j=1。各桶中水量由 (0,2,2) 变为 (2,2,0)。
第二次查询使得 X=0010000002000010,从而得到 A=(1,1,2,2),B=(2,2,0,3)。
此时,无论执行何种操作,目标均无法实现。
第三次查询使得 X=0010001002000010,从而得到 A=(1,1,2,2,2),B=(2,2,0,1,3)。
此时,目标可通过如下操作序列(例如)实现:
- 设 i=1,j=2。各桶中水量由 (1,1,2,2,2) 变为 (0,2,2,2,2)。
- 设 i=3,j=1。各桶中水量由 (0,2,2,2,2) 变为 (2,2,0,2,2)。
- 设 i=4,j=5。各桶中水量由 (2,2,0,2,2) 变为 (2,2,0,1,3)。
约束条件
- 1≤M≤4
- 1≤Q≤106
- 0≤Xi,j,Y≤1017
- 0≤i,j≤M
- 在任意时刻均有 ∑i=0M∑j=0MXi,j≥1。
- 所有输入值均为整数。
输入解题思路,AI测评打分。不知道怎么写?