题目名称 | 不同还倍数 | 翻倍但异或 | C.钝角 |
---|---|---|---|
输入文件名 | dism.in |
xshit.in |
obtuse.in |
输出文件名 | dism.out |
xshit.out |
obtuse.out |
每个测试点时间限制 | 2s | 2s | 2s |
每个测试点空间限制 | 1Gb | 256Mb | 256Mb |
测试点数目 | 10 | 10 | 10 |
每个测试点分值 | 10 | 10 | 10 |
给定两个正整数 \(N,M\) ,和一个序列 \(Z=(Z_1,....,Z_N)\) .
求出满足以下要求的序列 \(T=(T_1,....,T_N)\) 的个数,答案对 \(998244353\) 取模.
第一行两个正整数 \(N,M\), 接下来一行 \(N\) 个正整数 \(D_1,...,D_N\)
一个正整数表示答案,对 \(998244353\) 取模.
对于前 \(30 \%\),满足 \(2 \leq N \leq 7, 1 \leq M \leq 10\)
对于另外 \(20\%\), 满足 \(N \leq 10\)
对于所有的数据,满足 \(2 \leq N \leq 16, 1 \leq M \leq 10^{18}, 1 \leq Z_i \leq M(\forall 1 \leq i \leq N )\)
3 7 2 3 4
3
满足条件的序列有 \((2,3,4),(2,6,4),(6,3,4)\)
3 3 1 2 2
0
6 1000000000000000000 380214083 420492929 929717250 666796775 209977152 770361643
325683519
起初,你有 \(N\) 封信,每封信上写着一个正整数,你可以执行以任意顺序以下操作任意次.
如果你有一封信写着数 \(X\),你可以拥有一封写着 \(2X\) 的信.
如果你有一封信写着数 \(X\),另一封写着数 \(Y\) ,你可以拥有一封写着 \(\rm X \ \ \mathcal{XOR} \ \ \rm Y\) 的数信.
拥有新的信的同时,你原来的信不会消失.
但是,由于 \(\rm happyguy\)倡导节约,所以 \(\rm happyguy\) 想知道最多能有多少个不超过 \(M\) 的数字可以被写在信上,答案对 \(998244353\) 取模.
第一行两个正整数 \(N,M\), 接下来一行 \(N\) 个正整数 \(Z_i\),代表初始你拥有的信上面的数字, 不保证不会超过 \(M\).
注意, \(M\) 和初始的数字会以二进制的形式给出.
一个正整数表示答案,对 \(998244353\) 取模.
对于前 \(30 \%\),满足 \(N=1\)
对于另外 \(20 \%\) ,满足 \(M,Z_i \leq 2^{31}\)
对于所有的数据,满足 \(1 \leq N \leq 6, 1 \leq M \leq 2^{4000}, 1 \leq Z_i \leq 2^{4000}(\forall 1 \leq i \leq N )\)
3 111 1111 10111 10010
4
0,3,5,6可以被写在信上,提供一种可以拥有6的方式
15 -> 30
30,18 -> 12
12->24
30,24 -> 6
4 100100 1011 1110 110101 1010110
37
4 111001100101001 10111110 1001000110 100000101 11110000011
1843
1 111111111111111111111111111111111111111111111111111111111111111 1
466025955
黑板上有 \(N\) 个 \(0\), \(M\) 个 \(1\) ,每次操作你可以任意选择 \(K\) 个黑板上的数,擦掉他们并且把他们的平均数(有理数)写在黑板上.
数据保证若干次操作后黑板上只剩一个数,问最后黑板上可以写下多少种有理数,答案对 \(1e9+7\) 取模.
一行三个正整数 \(N,M,K\)
一个正整数表示答案,对 \(1e9+7\) 取模.
对于前 \(30 \%\),满足 \(2 \leq N, M \leq 10\)
对于所有的数据,满足 \(1 \leq N,M\leq 2000, 2 \leq K \leq 2000, N+M-1是 K-1的倍数\)
2 2 2
5
满足条件的序列有 \(\frac 1 4, \frac 3 8 ,\frac 1 2, \frac 5 8 , \frac3 4\)
3 4 3
9
150 150 14
937426930