24-MX-WF day 1 contest
\(A\) \(ball\)
题目描述
有 \(n\) 个人按编号从 \(1\) 到 \(n\) 坐成一圈,即第 \(i \in [1,n]\) 个人右边是 \(i + 1\) ,第 \(n\) 个人右边的人是 \(1\)。
初始,每个人手上有 \(m\) 个球。随后,\(n\) 个人按编号从小到大的顺序依次执行如下操作:
- 把自己手中的球分成数量相同且尽可能多的三份,扔掉剩余的球,再把分得的三份分别给自己、左边的人,以及右边的人。
问所有人均操作完一次后,有球最多的人有几个球。
输入格式
从标准输入读入数据。
一行两个整数 \(n\),\(m\)。
输出格式
输出到标准输出。
一行表示一个整数表示答案。
输入样例 1
3 10
输出样例 1
12
样例 1 解释
第 \(1\) 个人操作后: \(3, 13, 13\);
第 \(2\) 个人操作后: \(7, 4, 17\);
第 \(3\) 个人操作后: \(12, 9, 5\).
数据范围
对于 \(50 \%\) 的数据: \(3 \le n,m \le 10\)
对于 \(70 \%\) 的数据: \(3 \le n,m \le 10^7\)
对于 \(100 \%\) 的数据: \(3 \le n,m \le 10^12\)
\(B\) \(line\)
题目描述
如上,在平面直角坐标系 \(xOy\) 中,有点 \(A_1(1,0),A_2(1,1),A_3(-1,1),A_4(-1,-1),A_5(2,-1),\dots\),
有 \(q\) 次询问形如:
-
\(1\) \(n\) 询问点 \(A_n\) 的坐标;
-
\(2\) \(l\) \(r\) 询问折线段 \(A_lA_{l+1}A_{l+2} \dots A_{r-1}A_r\) 的长度;
输入格式
第一行一个正整数 \(q\),表示询问总数。
接下来 \(q\) 行,每行一个询问形如 \(1\) \(n\) 或 \(2\) \(l\) \(r\)。
输出格式
对于每一个询问,如果是 \(1\) 询问,输出一行两个整数表示 \(A_n\) 的 \(x\) 和 \(y\) 坐标,如果是 \(2\) 询问,输出一行一个整数表示折线长度。
输入样例 1
3
1 9
2 1 9
1 2020
输出样例 1
3 -2
24
-505 -505
数据范围
对于 \(10\%\) 的数据,只有 \(1\) 询问;
对于另外的 \(15\%\) 的数据,\(l,r,q \le 100\);
对于另外的 \(25\%\) 的数据,\(l,r \le 10^3\);
对于 \(100\%\) 的数据,\(1 \le n \le 10^9\),\(1 \le l < r \le 10^6\),\(1 \le q \le 10^5\)。
\(C\) \(STL\)
题目描述
有 \(n\) 个初始由空格隔开的字符串 \(s_1,s_2 \dots ,s_n\),每一个均为 \(\texttt{int}\)、\(\texttt{vector}\) 或 \(\texttt{pair}\) 之一。
现在他希望在字符串之间以及最后一个字符串之后的空格中添上 \(\texttt{<}\)、\(\texttt{>}\)、,(可以不填),使得现在整个字符串可以代表一个 \(C++14\) 中的合法数据类型。
例如:
- \(\texttt{int}\) 本身合法。
- \(\texttt{vector}\) \(\texttt{int}\) 可以变成 \(\texttt{vector}\) 使之合法。
- \(\texttt{pair}\) \(\texttt{int}\) \(\texttt{int}\) 可以变成 \(\texttt{pair<int,int>}\) 使之合法。
- \(\texttt{pair}\) \(\texttt{vector}\) \(\texttt{pair}\) \(\texttt{int}\) \(\texttt{vector}\) \(\texttt{int}\) \(\texttt{pair}\) \(\texttt{vector}\) \(\texttt{int}\) \(\texttt{int}\) 可以变成
\(\texttt{pair<vector<pair<int,vector<int>>>,pair<vector<int>,int>>}\) 使之合法。
小 L 对此感到好奇,于是他给你 \(m\) 个操作,每个操作形如:
- \(\texttt{l r op}\):询问 \([l,r]\) 是否可以通过执行上述操作得到一个合法的数据类型。若 \(op = 1\) 且有解,你还要给出一种方案。若有多解,你可以输出任意一种。
注意区间必须只能形成一个合法的数据类型,例如 \(\texttt{int int}\) 是不合法的。
输入格式
本题包含多组数据。
第一行两个正整数 \(n,m\);
接下来一行 \(n\) 个用空格隔开的字符串 \(s_1,s_2,\dots s_n\);
接下来 \(m\) 行,每行三个整数 \(l,r,op\)。
输出格式
对每个询问,首先输出一行 Yes
或 No
表示解是否存在。若该询问对应的 \(op=1\),你还需要再输出一行代表一组解,若有多解,你可以输出任意一种。
输入样例 1
10 6
pair vector pair int vector int pair vector int int
5 6 0
3 6 0
8 10 0
7 10 1
1 10 1
2 5 1
输出样例 1
Yes
Yes
No
Yes
pair<vector<int>,int>
Yes
pair<vector<pair<int,vector<int>>>,pair<vector<int>,int>>
No
数据范围
对于 \(8\%\) 的数据,\(1 \le n,m \le 10\);
对于 \(16\%\) 的数据,\(1 \le n,m \le 100\);
对于 \(24\%\) 的数据,\(1 \le n,m \le 10^3\);
对于 \(40\%\) 的数据,\(1 \le n,m \le 10^5\);
对于另外 \(8\%\) 的数据, \(s_i\) 不等于 \(\texttt{int}\);
对于另外 \(8\%\) 的数据,\(s_i\) 不等于 \(\texttt{vector}\);
对于另外 \(8\%\) 的数据,\(s_i\) 不等于 \(\texttt{pair}\);
对于另外 \(8\%\) 的数据,\(op=0\);
对于另外 \(8\%\) 的数据,保证数据随机生成。
对于 \(100\%\) 的数据,\(1 \le n,m \le 10^6\),\(s_i\) 为 \(\texttt{int vector pair}\) 中的一种,\(1 \le l \le r \le n\),\(op \in \{0,1\}\),\(op=1\) 且有解时的 \(\sum(r-1+1) \le 10^6\)。
\(D\) \(round\)
题目描述
现在有 \(n\) 个白色的球串成了一个圆环,编号依次为 \(1,2,\dots ,n\),现在你需要把这些球都染黑,具体操作为:
-
等概率随机地选择一个之前从未选过的球(白球、黑球都可以)。
-
将该球和它相邻的两个球都染黑。
-
如果所有白球都染黑,那么结束。
求出染黑所有白球的期望步数,答案对 \(998244353\) 取模。
输入格式
一行一个正整数 \(n\),表示白球的个数。
输出格式
一行一个数字,表示期望步数,对 \(998244353\) 取模。
输入样例 1
4
输出样例 1
2
样例 1 解释
第一次操作后,只剩下一个白球。接下来,有两个黑球可以选择,一个白球可以选择,不管选哪一个都会染黑所有的球。
数据范围
对于 \(40\%\) 的数据,\(n < 10\)。
对于 \(100\%\) 的数据,\(3 < n < 5000\)。