联合省选 2023 比赛记录

联合省选 2023 比赛记录

Day 1

luogu P9167 [省选联考 2023] 城市建造

在这个国度里面有 \(n\) 座城市,一开始城市之间修有若干条双向道路,导致这些城市形成了 \(t \ge 2\) 个连通块,特别的,这些连通块之间两两大小差的绝对值不超过 \(0 \le k \le 1\)。为了方便城市建设与发展,\(n\) 座城市中的某 \(t\) 座城市在这 \(t\) 座城市之间额外修建了至少一条双向道路,使得所有城市连通。
现在已经知道额外修建后的所有道路,你需要算出有哪些双向道路集合 \(E'\),满足这些道路有可能是后来额外修建的,请输出答案对 \(998,244,353\) 取模的结果。
即给定一张 \(n\) 个点 \(m\) 条边的无向连通\(G = (V, E)\),询问有多少该图的子图 \(G' = (V', E')\),满足 \(E' \ne \varnothing\)\(G - E'\) 中恰好有 \(|V'|\) 个连通块,且任意两个连通块大小之差不超过 \(k\),保证 \(0 \le k \le 1\),请输出答案对 \(998,244,353\) 取模的结果。
对于所有的数据,保证:\(3 \le n \le 10^5\)\(n - 1 \le m \le 2 \times 10^5\)\(0 \le k \le 1\)

luogu P9168 [省选联考 2023] 人员调度

众所周知,一个公司的 \(n\) 个部门可以组织成一个树形结构。形式化地,假设这些部门依次编号为 \(1, \ldots, n\),那么除了 \(1\) 号部门以外,第 \(i \in [2, n]\) 个部门有且仅有一个上级部门 \(p_i \in [1, i - 1]\)。这样,这家公司的 \(n\) 个部门可以视为一个以 \(1\) 为根的树。如果 \(i\)\(j\) 子树中的点,那么称部门 \(i\) 是部门 \(j\) 的子部门。
该公司初始时有 \(k\) 名优秀员工,编号依次为 \(1 \ldots k\)。第 \(i\) 名优秀员工初始时在第 \(x_i\) 个部门工作,并且其有一个能力值 \(v_i > 0\)
为了最大化公司的运作效率,公司老板 0/\/\G 决定进行一些人员调动。具体来说,可以将编号为 \(i\) 的优秀员工调动到 \(x_i\) 的一个子部门,或者不调度(此时该员工在 \(x_i\) 部门)。随后,优秀员工们会在其所在的部门竞选部门领导——能力值最高者将担任这一职位,并给公司带来等同于其能力值的贡献。如果一个部门一个优秀员工也没有,那么就无法选出部门领导,从而对公司的贡献将是 \(0\)。此时,公司的业绩被定义为公司各部门的贡献之和。
公司老板 0/\/\G 自然想知道,该如何进行人员调动,使公司的业绩最大?
这当然难不倒他,然而,公司优秀员工的数量也会发生变化;具体来说,会依次发生 \(m\) 个事件,每个事件形如:
\(•\) 1 x v:先令 \(k = k + 1\),然后新增一位编号为 \(k\)、初始部门为 \(x\)、能力值为 \(v\) 的优秀员工;
\(•\) 2 id:编号为 \(\mathit{id}\) 的优秀员工将被辞退。
公司老板 0/\/\G 希望你能在最开始和每个事件发生后,告诉他公司的业绩最大可能是多少?
注意,每次人员调动都是独立的,也就是每次计算公司的最大可能业绩时,每个优秀员工都会回到其所在的初始部门。
对于所有的数据,保证:\(1 \le \mathit{sid} \le 15\)\(1 \le n, k \le 10^5\)\(0 \le m \le 10^5\)\(1 \le p_i < i\)\(1 \le x_i, x \le n\)\(1 \le v_i, v \le 10^5\)
对于事件 \(2\),保证:\(1 \le \mathit{id} \le k\) 且编号为 \(\mathit{id}\) 的员工在此事件发生时仍在工作。

Day 2

luogu P9169 [省选联考 2023] 过河卒

有一个 \(n\)\(m\) 列的棋盘。我们用 \((i,j)\) 表示第 \(i\) 行第 \(j\) 列的位置。棋盘上有一些 障碍,还有一个黑棋子和两个红棋子。
游戏的规则是这样的: 红方先走,黑方后走,双方轮流走棋。红方每次可以选择一个红棋子,向棋盘的相邻一格走一步。具体而言,假设红方选择的这个棋子位置在 \((i,j)\),那么它可以走到 \((i-1,j),(i+1,j),(i,j-1),(i,j+1)\) 中的一个,只要这个目的地在棋盘内且没有障碍且没有红方的另一个棋子。
黑方每次可以将自己的棋子向三个方向之一移动一格。具体地,假设这个黑棋子位置在 \((i,j)\),那么它可以走到 \((i-1,j),(i,j-1),(i,j+1)\) 这三个格子中的一个,只要这个目的地在棋盘内且没有障碍。
在一方行动之前,如果发生以下情况之一,则立即结束游戏,按照如下的规则判断胜负(列在前面的优先):
\(•\) 黑棋子位于第一行。此时黑方胜。
\(•\) 黑棋子和其中一个红棋子在同一个位置上。此时进行上一步移动的玩家胜。
\(•\) 当前玩家不能进行任何合法操作。此时对方胜。
现在假设双方采用最优策略,不会进行不利于自己的移动。也就是说:
\(•\) 若存在必胜策略,则会选择所有必胜策略中,不论对方如何操作,本方后续获胜所需步数最大值最少的操作。
\(•\) 若不存在必胜策略,但存在不论对方如何行动,自己都不会落败的策略,则会选择任意一种不败策略。
\(•\) 若不存在不败策略,则会选择在所有策略中,不论对方如何操作,对方后续获胜所需步数最小值最大的操作。
如果在 \(100^{100^{100}}\) 个回合之后仍不能分出胜负,则认为游戏平局。请求出游戏结束时双方一共移动了多少步,或者判断游戏平局。
对于所有的数据,保证:\(1 \leq T \leq 10\)\(2 \leq n \leq 10\)\(1 \leq m \leq 10\)\(\text{id}\) 等于测试点编号。
对于每组数据保证:棋盘上的黑棋恰好有一个,红棋恰好有两个,且黑棋不在第一行。

luogu P9170 [省选联考 2023] 填数游戏

众所周知,Alice 和 Bob 是一对好朋友。今天,他们约好一起玩游戏。
一开始,他们各自有一张空白的纸条。接下来,他们会在纸条上依次写 \(n\)\([1,m]\) 范围内的正整数。等 Alice 写完,Bob 在看到 Alice 写的纸条之后开始写他的纸条
Alice 需要保证她写下的第 \(i\) 个数在集合 \(S_{i}\) 中,Bob 需要保证他写下的第 \(i\) 个数在集合 \(T_{i}\) 中。题目保证 \(1 \leq\left|S_{i}\right|,\left|T_{i}\right| \leq 2\)
Alice 喜欢相同,因此,她希望她写下的数与 Bob 写下的数对应位置相同的个数尽量多。Bob 喜欢不同,因此,他希望他写下的 \(n\) 个数 \(b_{1}, \ldots, b_{n}\) 互不相同。在此基础上,Bob 希望他写下的数与 Alice 写下的数对应位置相同的个数尽量少。
即设 Alice 写下的数为 \(a_{1}, \ldots, a_{n}\),Bob 写下的数为 \(b_{1}, \ldots, b_{n}\),记 \(X\) 为满足 \(1 \leq i \leq n, a_{i}=b_{i}\) 的下标 \(i\) 的个数,则
\(•\) Alice 希望最大化 \(X,\)
\(•\) Bob 在保证 \(b_{1}, \ldots, b_{n}\) 互不相同的前提下希望最小化 \(X\)
你首先想知道 Bob 能否保证他写下的 \(n\) 个数互不相同。如果 Bob 能够做到,你想知道在双方均采取最优策略的前提下 \(X\) 的值会是多少。
对于全部数据,\(n,m\leq 10^6\)\(\sum n,\sum m\leq 1.5\times 10^6\)

posted @ 2024-05-11 17:14  Cyber_Punk  阅读(38)  评论(0)    收藏  举报