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. \(1\) \(n\) 询问点 \(A_n\) 的坐标;

  2. \(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\)

输出格式

对每个询问,首先输出一行 YesNo 表示解是否存在。若该询问对应的 \(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\),现在你需要把这些球都染黑,具体操作为:

  1. 等概率随机地选择一个之前从未选过的球(白球、黑球都可以)。

  2. 将该球和它相邻的两个球都染黑。

  3. 如果所有白球都染黑,那么结束。

求出染黑所有白球的期望步数,答案对 \(998244353\) 取模。

输入格式

一行一个正整数 \(n\),表示白球的个数。

输出格式

一行一个数字,表示期望步数,对 \(998244353\) 取模。

输入样例 1

4

输出样例 1

2

样例 1 解释

第一次操作后,只剩下一个白球。接下来,有两个黑球可以选择,一个白球可以选择,不管选哪一个都会染黑所有的球。

数据范围

对于 \(40\%\) 的数据,\(n < 10\)

对于 \(100\%\) 的数据,\(3 < n < 5000\)

posted @ 2024-08-06 16:04  chaqjs  阅读(17)  评论(0编辑  收藏  举报