NOIP 2023比赛报告

发布时间 2023-11-25 18:40:13作者: 01bit

第一题

比赛情况

$100$ 分,耗时 $1$ 小时。

题解

对于 $1\le i\le n$ ,比较 $w_i$ 字典序最小的字符 $a_i$ 与每个 $w_j(i\ne j)$ 字典序最大的字符 $b_j$ 。如果有 $b_j\le a_i$ ,则 $w_i$ 不能成为字典序最小的单词,反之可以。

代码

第二题

比赛情况

$100$ 分,耗时 $2$ 小时。

题解

对于每个变量,记录为与其他变量初值的关系或者为某个定值。

建立一个无向图,当变量 $i$ 为变量 $j$ 的初值时,连接 $i,j$ ,边权为 $0$ ;当变量 $i$ 为变量 $j$ 的初值的非时,连接 $i,j$ ,边权为 $1$ 。

对图进行 DFS,如果一个环总共的边权和为奇数或有一个点对应变量为定值 $U$ ,则整个连通分量中的点对应的变量的初值应为 $U$ 。

代码

第三题

比赛情况

没做。

题解

可以看做可以从$(x,y)$走到$(x+1,y),(x,y+1),(x+1,y+1)$ ,要求 $(1,1)$ 走到 $(n,m)$ 并且对所有经过的点 $(x,y)$ 都有 $a_x<b_y$ 或 $a_x>b_y$ 。

分析当 $a_x<b_y$ 的情况,另一种情况同理。

对于序列 $a_{1\dots i}$ 与 $b_{1\dots j}$ 来说,如果 $a_{\min}<b_{\min}$ ,那么 $a_{\min}$ 所在行都合法,否则不合法;如果 $a_{\max}<b_{\max}$ ,那么 $b_{\max}$ 所在列都合法,否则不合法。接下来再分析左上角和右下角的情况,如此递归下去。

代码

第四题

比赛情况

DP 没写出来。

题解

记 $f_i$ 为前 $i$ 天内,第 $i$ 天没跑的能量值。

所以 $f_i=\max{f_{i-1},\max\limits_{j=i-k-1}^{i-1}[f_j-(i-j-1)d+val(j+1,i-1)]}$ ,其中 $val(L,R)=\sum\limits_i^{L\le l_i\le r_i\le R}v_i$ 。

可以发现我们只需要 $f_{l_i-1}$ 或 $f_{r_i+1}$ 的值,线段树优化即可。

代码