PKUSC 2023

发布时间 2023-05-08 17:58:03作者: 云浅知处

不保证 Subtask 完全准确。题面与 \(100\%\) 数据范围大致准确。

D1T1

给定两个长度相同的字符串 \(S[1\cdots n],T[1\cdots n]\),你需要对每个 \(1\le i\le n\) 输出:

  • 如果将 \(S_i\) 替换为 \(T_i\),得到的新字符串的 border 长度是多少。

一个字符串 \(S\) 的 border 长度定义为最大的 \(i\) 使得 \(1\le i<n\),且 \(S[1\cdots i]=S[n-i+1\cdots n]\)

  • Subtask #1(23pts):\(1\le |S|\le 50\)
  • Subtask #2(31pts):\(1\le |S|\le 5000\)
  • Subtask #3(37pts):\(1\le |S|\le 10^5\)
  • Subtask #4(9pts):\(1\le |S|\le 2\times 10^6\)

D1T2

\(n\) 个人在玩狼人杀,其中第 \(m\) 个是狼人。在剩下的 \(n-1\) 个人中等概率随机一个人作为预言家,预言家每次会随机选择一个区间 \([l,r]\)(即每个区间 \(\frac{2}{n(n+1)}\) 的概率),他可以知道狼人是否在这个区间内。问期望意义下预言家期望多少步能确定谁是狼人。

具体来说,如果预言家是 \(i\),那么对他而言的初始“候选狼人集合”为 \([1,i)\cup (i,n]\),如果他询问了 \([l,r]\),此时若狼人在 \([l,r]\) 内,则候选狼人集合由 \(S\leftarrow S\cap [l,r]\);否则 \(S\leftarrow S\cap([1,n]-[l,r])\)。该预言家找到狼人的期望步数就是 \(|S|\) 第一次变成 \(1\) 的期望步数。对某个质数取模。

本题代码长度限制为 8KB。

  • Subtask #1(23pts):\(2\le n\le 20,1\le m\le n\)​。
  • Subtask #2(34pts):\(2\le n\le 50,1\le m\le n\)
  • Subtask #3(43pts):\(2\le n\le 150,1\le m\le n\)

D1T3

给定一棵 \(n\) 个结点的有根树,\(1\) 是树根。树上的每个点有初始点权 \(x_u\),而点 \(u\)实际点权 \(y_u\) 定义为他的初始点权和他所有儿子的实际点权的众数。保证每个点的儿子个数均为偶数。

现在已知点 \(u\)初始点权\(1\) 的概率为 \(\text{Pr}[x_u=1]=p_u\),问根节点实际点权\(1\) 的概率。

此外,你还需要维护 \(q\) 次修改,每次修改会给出 \(x,y\),并将 \(p_x\) 修改为 \(y\)。你需要在每次修改后输出根节点实际点权\(1\) 的概率。对 \(998244353\) 取模。

  • Subtask #1(12pts):\(1\le n,q\le 100\)
  • Subtask #2(20pts):\(1\le n\le 2\times 10^5,1\le q\le 5\times 10^4\),且对每个 \(i\),点 \(2i\)\(2i+1\) 的父亲相同,且都在 \([1,2i-1]\) 中等概率随机。
  • Subtask #3(20pts):\(1\le n\le 2\times 10^5,1\le q\le 5\times 10^4\),每个点的儿子个数不超过 \(10\)
  • Subtask #4(23pts):\(1\le n\le 2\times 10^5,1\le q\le 5\times 10^4\),每个点的父亲均为 \(1\)
  • Subtask #5(25pts):\(1\le n\le 2\times 10^5,1\le q\le 5\times 10^4\)

D2T1

你需要维护一个序列,初始为空。有 \(n\) 次操作:

  • 1 x:在序列中编号为 \(x\) 的人后面插入一个人,他的编号是当前序列中的人数 \(+1\)。若 \(x=0\) 则代表将此人插入到序列开头。
  • 2 i y:如果插入编号为 \(i\) 个人的操作是 1 x,那么将其改为 1 y。该操作会同步影响后面的所有操作。
  • 3 z:查询序列中编号为 \(z\) 的人是第几个。

Subtask #1(5pts):\(1\le n\le 500\)

Subtask #2(20pts):\(1\le n\le 3\times 10^5\),且没有 \(2\) 操作。

Subtask #3(20pts):\(1\le n\le 3\times 10^5\),且 \(2\) 操作的数量不超过 \(200\)

Subtask #4(20pts):\(1\le n\le 3\times 10^5\),所有操作在可能的操作中等概率随机生成。

Subtask #5(35pts):\(1\le n\le 3\times 10^5\)

D2T2

一个角色有 \(L\) 个位置可以搭配圣遗物。你在第 \(i\) 个位置刷了 \(n_i\) 件圣遗物,它们的暴击率和暴击伤害分别是 \((a_{i,1},b_{i,1}),(a_{i,2},b_{i,2}),\cdots,(a_{i,n_i},b_{i,n_i})\)

现在你需要回答 \(Q\) 次询问。每次询问会给出初始暴击率和暴击伤害 \(A,B\),你需要在每个位置选择一件圣遗物,设最终得到的圣遗物部分总暴击率为 \(a\),总暴击伤害为 \(b\),那么我们认为你的期望伤害是 \(D=(A+a)(B+b)\)

你需要给出一种方案,使得 \(D\) 的值与理论上 \(D\) 的最大值的差不超过 \(2500\)

\(T\) 组数据。

对于 \(100\%\) 的数据,\(1\le \sum L\le 50000,1\le a_{i,j},b_{i,j}\le 100,n_i\le 10,Q\le 10,1\le A,B\le 10^7\)

其中 \(a_{i,j},b_{i,j}\) 可以是浮点数,但小数点后不超过两位。

  • Subtask #1(15pts):\(L\le 5,n_i\le 3\),且 \(a,b\) 在范围内等概率随机生成。
  • Subtask #2(20pts):$L\le $(一个不超过 \(500\) 的数),且 \(a,b\) 在范围内等概率随机生成。
  • Subtask #3(15pts):\(L\le 500\),且 \(a,b\) 在范围内等概率随机生成。
  • Subtask #4(15pts):\(a_{i,j}+b_{i,j}=100\)
  • Subtask #5(25pts):无特殊限制。

D2T3

给定素数 \(P\)\(m\) 个方程,第 \(i\) 个方程为

\[a_ix+(x\bmod b_i+1)(x^i\bmod \lfloor\sqrt{x}\rfloor)\equiv c_i\pmod P \]

你需要找到 \([1,P-1]\) 内的整数解 \(x\)。保证解唯一。

保证数据均随机生成,即先随机 \(P,x\),再随机 \(a_i,b_i\) 并生成 \(c_i\)。保证 \(m=5\)。有 \(T\le 40\) 组数据。

对于 \(100\%\) 的数据,\(P\) 为素数,\(9\times 10^{17}\le P\le 10^{18}\)\(1\le a_i,b_i,c_i<P\)

  • Subtask #1(15pts):\(b_i=1\),保证方程的解 \(x\le 10^{12}\)
  • Subtask #2(??pts):\(b_i=1\),保证方程的解 \(x\le 10^{14}\)
  • Subtask #3(??pts):\(b_i=1\),保证方程的解 \(x\le 10^{16}\)
  • Subtask #4(??pts):\(b_i=1\)
  • Subtask #5(??pts):\(1\le b_i\le 10\)
  • Subtask #6(??pts):\(91\le b_i\le 100\)

然后写点游记。两天写了四个暴力,只过了 d2t1,d2t3 零昏。就这。