CF1119H.Triple
NOI/NOI+/CTSC
通过率:0%
时间限制:1.50s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You have received your birthday gifts — n triples of integers! The i-th of them is {ai,bi,ci}. All numbers are greater than or equal to 0, and strictly smaller than 2k, where k is a fixed integer.
One day, you felt tired playing with triples. So you came up with three new integers x, y, z, and then formed n arrays. The i-th array consists of ai repeated x times, bi repeated y times and ci repeated z times. Thus, each array has length (x+y+z).
You want to choose exactly one integer from each array such that the XOR (bitwise exclusive or) of them is equal to t. Output the number of ways to choose the numbers for each t between 0 and 2k−1, inclusive, modulo 998244353.
你收到了生日礼物——n 组三元整数!其中第 i 组为 {ai,bi,ci}。所有数字均大于等于 0,且严格小于 2k,其中 k 是一个给定的整数。
某天,你玩三元组玩累了,于是构造了三个新的整数 x、y、z,并据此生成了 n 个数组。第 i 个数组由 ai 重复 x 次、bi 重复 y 次、ci 重复 z 次构成。因此,每个数组的长度均为 (x+y+z)。
你希望从每个数组中恰好选择一个整数,使得它们的异或(按位异或)结果恰好等于 t。请对每个满足 0≤t≤2k−1 的 t,输出满足条件的选择方案数(模 998244353)。
输入格式
The first line contains two integers n and k (1≤n≤105, 1≤k≤17) — the number of arrays and the binary length of all numbers.
The second line contains three integers x, y, z (0≤x,y,z≤109) — the integers you chose.
Then n lines follow. The i-th of them contains three integers ai, bi and ci (0≤ai,bi,ci≤2k−1) — the integers forming the i-th array.
第一行包含两个整数 n 和 k(1≤n≤105,1≤k≤17)—— 分别表示数组的个数以及所有数字的二进制长度。
第二行包含三个整数 x、y、z(0≤x,y,z≤109)—— 表示你所选定的整数。
接下来是 n 行。其中第 i 行包含三个整数 ai、bi 和 ci(0≤ai,bi,ci≤2k−1)—— 构成第 i 个数组的整数。
输出格式
Print a single line containing 2k integers. The i-th of them should be the number of ways to choose exactly one integer from each array so that their XOR is equal to t=i−1 modulo 998244353.
输出一行,包含 2k 个整数。其中第 i 个整数表示:从每个数组中恰好选择一个整数,使得它们的异或值等于 t=i−1 的方案数(对 998244353 取模)。
输入输出样例
输入#1
1 1 1 2 3 1 0 1
输出#1
2 4
输入#2
2 2 1 2 1 0 1 2 1 2 3
输出#2
4 2 4 6
输入#3
4 3 1 2 3 1 3 7 0 2 5 1 0 6 3 3 2
输出#3
198 198 126 126 126 126 198 198
说明/提示
In the first example, the array we formed is (1,0,0,1,1,1), we have two choices to get 0 as the XOR and four choices to get 1.
In the second example, two arrays are (0,1,1,2) and (1,2,2,3). There are sixteen (4⋅4) choices in total, 4 of them (1⊕1 and 2⊕2, two options for each) give 0, 2 of them (0⊕1 and 2⊕3) give 1, 4 of them (0⊕2 and 1⊕3, two options for each) give 2, and finally 6 of them (0⊕3, 2⊕1 and four options for 1⊕2) give 3.
在第一个例子中,我们构造的数组为 (1,0,0,1,1,1),其中共有两种选择使得异或结果为 0,四种选择使得异或结果为 1。
在第二个例子中,两个数组分别为 (0,1,1,2) 和 (1,2,2,3)。总共有十六种(4⋅4)选择:其中 4 种(1⊕1 和 2⊕2,每种各有两种选项)得到 0;2 种(0⊕1 和 2⊕3)得到 1;4 种(0⊕2 和 1⊕3,每种各有两种选项)得到 2;最后 6 种(0⊕3、2⊕1 以及 1⊕2 的四种选项)得到 3。
输入解题思路,AI测评打分。不知道怎么写?