把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end

AGC 选做

AGC047F Rooks

submission

AGC048D Pocky Game

一个观察是,假设现在是先手必胜的,那么给第一堆石子加一个石子也是先手必胜的。因此,存在一个阈值 \(k\),满足第一堆石子 \(\leq k\) 时是后手必胜的,否则是先手必胜的。

考虑对着这个东西做。记 \(l_{l,r}\) 表示 \([l,r]\) 区间,A 先手,\(a_l\) 至少要多少才能 A 必胜,\(r_{l,r}\) 表示 \([l,r]\) 区间,B 先手,\(a_r\) 至少要多少才能 B 必胜。

两边的转移类似,这里只考虑 \(l\) 的转移。首先边界有 \(l_{l,l}=1\)

然后考虑在 \(l_{i,j}\) 的时候,流程大概是这样的:

  • 设最左边初始值为 \(x\),现在已经两边减了 \(y\) 个。
  • 左边考虑要不要一次走完,如果走完是优的,要满足 \(A_j-y<r_{i+1,j}\),即 $y>A_j-r_{i+1,j} $。
  • 否则不走完,将左边 \(-1\),右边决策要不要一次走完。如果走完是优的,要满足 \(x-y-1<l_{i,j-1}\),即 \(y>x-l_{i,j-1}-1\)

为了使先手必胜,要让 \(A_j-r_{i+1,j}\geq x-l_{i,j-1}-1\) 或者 \(A_j-r_{i+1,j}<0\),可以解出 \(x\) 需要的范围,注意和 \(1\)\(\max\)

对于 \(r\) 一边类似,时间复杂度 \(O(Tn^2)\)submission

AGC047D Twin Binary Trees

唐题,枚举第一棵树上两个点的 LCA,将左子树插入到第二棵树中,右子树去枚举 LCA 查询即可,复杂度 \(O(n^22^n)\)

submission

AGC046E Permutation Cover

首先我们可以证明,一个序列有解的充要条件是 \(2\min \geq \max\)

必要性是比较显然的:一个最小值最多只能和两个最大值构成连续的排列。而充分性可以归纳构造:将最小值放在中间,左边将最大值放在最左边,中间任意填,最小值右边放所有最大值,这样就用一个最小值抵消掉了两个最大值。

这题 \(k\)\(\sum a\) 比较小,我们考虑贪心枚举每一位填某个值是否合法,然后我们需要做的就是在 \(O(k)\) 时间内判定确定一个前缀 \([1,i]\) 之后能不能填出合法的序列。

我们记 \(l\) 为最小的位置满足还没有被一个排列覆盖。\(r\) 为一个最小的位置满足 \([r,i]\) 之间没有重复的数,那么在 \([r,i]\) 之间没有出现的数是肯定要用一次的,而 \([l,i]\) 中的数是不需要用一次的,先把这些算掉,然后我们希望最小值尽可能大,因此 \([r,l-1]\) 区间内的最小值尽可能不被 \(-1\),而最大值尽可能被 \(-1\),因此我们求出最小值最小的位置 \(p\)。我们需要补齐 \([p,i]\) 这段区间成排列,并在不影响最小值的情况下将尽量多的最大值附在后面。最后判断是否有 \(2\min\geq \max\)

时间复杂度 \(O(k^2\sum a)\)submission

AGC046D Secret Passage

我们枚举一个位置 \(p\)\(p\) 之前的都是被删掉的或者扔到后面去的,\(p\) 之后都是留在最后的序列中的。

我们首先需要一个 DP 算前 \(p\) 个能扔到后面去几个。设 \(f_{i,x,y}\) 表示删掉了前 \(i\) 个,往后面扔了 \(x\)\(0\)\(y\)\(1\),转移讨论一下是可以 \(O(1)\) 的。

然后我们需要计算后 \(p\) 个插入 \(x\)\(0\)\(y\)\(1\) 所能得到的本质不同的序列个数。为了保证本质不同,我们规定只能在原序列匹配不下去的时候才能插入从前面往后扔的数,这个转移也是 \(O(1)\) 的,总复杂度 \(O(n^3)\)

submission

AGC045D Lamps and Buttons

我们发现,当我们不知道任何信息的时候,所谓“最优策略”其实是没有的,就是随便找一个点摁,然后把这一整个环都摁亮。方便起见,我们不妨假设其就是从 \(1\)\(A\) 摁。

这就等价于:

  • 所有的环都至少有一个点在前 \(A\) 个点中。
  • 将所有环按照最小点排序后,一元环后面没有 \(A\) 个点之后的环。

我们设 \(f_{i,j}\) 表示现在剩了 \(i\) 个点,前面 \(n-i\) 个点的分配中分配了 \(j\) 个自环的方案数,转移只需要枚举接下来一个环分了几个点,然后前缀和优化一下就可以做到 \(O(A^2)\)

得到这个以后,对于每对 \((i,j)\),剩下的方案数就是将 \(i\) 个点自己连成环(第一个环要是自环),然后将剩下 \(n-A\) 个点插入到前 \(A-i-j\) 个点形成的环中,可以预处理组合数计算。时间复杂度 \(O(n+A^2)\)

submission

AGC045B 01 Unbalanced

首先把 \(1\) 看成 \(+1\)\(0\) 看成 \(-1\),则我们要求的值就是前缀和最大值减最小值。

先将 ? 都看成 \(1\),然后考虑改成 \(-1\)

一个暴力做法是枚举最小值,然后从前往后考虑每个 ?。一个 ?\(1\) 改成 \(-1\) 会使得前缀和的一个后缀减去上 \(2\),那么前面影响范围更大,就是能改就改。

我们发现,如果一次操作使最小值降低了 \(2\),则进行这次操作一定是不优的。如果一次操作使最小值降低了 \(1\),则不会进行 \(2\) 次。因此如果考虑只做后面一次,则最小值不会降低,而最大值至多增加 \(2\),不会更劣。因此我们的最小值只有两种取值,直接暴力算就行。

submission

AGC044E Random Pawn

首先我们发现,如果我们站在 \(A_i\) 最大的点上还继续走,就挺唐的,于是我们考虑以 \(A_i\) 最大的地方断环为链,在两头都放上这个 \(\max\)

然后考虑消去 \(b\) 的贡献。显然有 \(f_i=\max(A_i,\frac{1}{2}(f_{i-1}+f_{i+1})-B_i)=\max(A_i+B_i,\frac{1}{2}(f_{i-1}+f_{i+1}))-B_i\)。如果我们将这个 \(B_i\) 展开到其它计算式内就会产生新的减法。设 \(g_i\) 表示 \(i\) 总共要减去多少,那么有 \(g_i=\frac{1}{2}(g_{i-1}+g_{i+1})+B_i\),容易主元法 \(O(n)\) 解出各个 \(g\)

这样我们变成了 USACO18DEC Balance Beam,求个凸壳就可以求出每个点开始的答案。

submission

AGC044D Guess the Password

首先我们先来考虑确定每个字母的数量,这只需要询问一次长度为 \(128\) 的字符 \(c\) ,如果得到的编辑距离为 \(x\),则 \(c\) 的个数为 \(128-x\)

我们发现,如果我们询问了一次 \(f(S)\),且有 \(L-|S|=f(S)\),则 \(S\) 为我们需要问的串的子序列。

假设我们已经知道了字符集合 \(S\) 与字符集合 \(T\) 在原串中的子序列 \(s,t\),我们希望合并这两个序列,则每次拿出 \(t\) 中的第一个字符,不断在 \(s\) 中从前往后插入并询问是否存在这样的子序列,如果存在就插进去,这样的话查询的次数不会超过 \(|s|+|t|\),总的询问次数是 \(L\log |\Sigma|+|\Sigma|\)

submission

AGC044C Strange Dance

问题来了,这个题是在联合省选 2020 之前出的还是之后出的呢?

考虑将所有点的位置从低位到高位建立一个 Trie,每个节点上维护一个懒标记,表示这个点子树内是否需要交换 \(1,2\) 儿子。

对于加法操作,先考虑根节点,这会让 \(0\to 1,1\to 2,2\to 0\),并且给原来最后一位为 \(2\) 的子树进一个位,递归下去加即可。

时间复杂度 \(O(3^n+n|T|)\)submission

AGC043C Giant Graph

我其实并不会正经地这个题,但是我硬蒙蒙出来了正确做法(

首先你考虑一张图的时候怎么做,显然是从大到小选,如果到一个点的时候其周围有已经选过的点就不能再选了。

那么你先把这三张图的这样的一个独立集 \(S_1,S_2,S_3\) 都跑出来,然后我猜一手三元组 \((a,b,c)\) 满足 \(a\in S_1,b\in S_2,c\in S_3\) 都要被选。

在这个基础上,剩下的点要怎么选?我们在每个图中剩下的部分再跑一个最大独立集出来,记为 \(T_1,T_2,T_3\),则我们还可以在 \(S\) 集合中选一个,\(T\) 集合中选两个的点。

然后我们进一步猜想,我们记 \(S_{i,j}\) 表示第 \(i\) 棵树这样跑出来的第 \(j\) 个独立集,则我们需要从小到大选一些 \((i,j,k)\),代表我们选了 \(S_{0,i},S_{1,j},S_{2,k}\) 中的点,并且不存在三元组满足有两个位置一样。

我们还可以发现,将一张图划分成最少的独立集个数不超过 \(O(\sqrt m)\),证明考虑对点的度数根号分治,\(>\sqrt m\) 的单独分一个独立集,\(\leq \sqrt m\) 的只会划分出 \(\sqrt m\) 个独立集,因此总个数不超过 \(2\sqrt m\) 个。

所以我们从小到大暴力枚举这些三元组就可以以 \(O(m\sqrt m)\) 复杂度通过这个题,进一步的,打表发现满足的三元组是 \((a,b,a\operatorname{xor} b)\),可以直接 \(O(m)\) 计算。

submission

BTW 这和正解是本质相同的。

考虑我们是如何确定一个点是否被选的:遍历其走向比这个点更大的点的出边,如果存在一个点被选了,那么这个点就不能选,否则就说明这个点要被选。

如果将“被选”看成必败态,“不被选”看成必胜态,就完全符合了!于是一个点被不被选等价于在这个图上先后手轮流走,走到 \((n,n,n)\) 停止,谁不能走谁输是本质相同的。

又因为在这张图上走本质上是在三个图上分别走,于是可以求出三个图上每个点的 SG 值,然后找 xor 为 \(0\) 的点即可。

于是和上面的做法代码上是没啥区别的!

AGC040E Prefix Suffix Addition

感觉是一个比较顺的题。

首先我们只考虑一边操作的情况。如果对于一个 \(k\) 操作了两次肯定是不优的,因为肯定可以将这两次合并。如果操作了两次的 \(k\) 分别为 \(k_1,k_2\),不妨设 \(k_1<k_2\),则将第二次操作的前 \(k_1\) 位加给第一次是更优的,因为这对第二次操作的 \([k_1+1,k_2]\) 区间减少了限制。

因此,对于一边的情况,可以看做,将序列划分成若干个区间,每个区间内可以加单调不降的序列,代价为划分的区间个数。

对于另一边同样也是如此,只不过换成了加单调不升的序列。

因此,我们的问题变成:给定 \(a\) 序列,要找到两个非负整数序列 \(b,c\),满足 \(b_i+c_i=a_i\),并最小化 \(\sum [b_i>b_{i+1}]+[c_i<c_{i+1}]\),这里 out of bound 的 \(b,c\) 都看作是 \(0\)

解决这个问题显然有一个简单的 dp:设 \(f_{i,j}\) 为到了第 \(i\) 个数,这个数的 \(b_i=j,c_i=a_i-j\) 的最小代价。

接下来我们有两个观察:

  • 若对于一对 \(j_1,j_2\),满足 \(dp_{i,j_1}+2\leq dp_{i,j_2}\),则 \(dp_{i,j_2}\) 这个状态没用。因为每次转移至多增加 \(2\) 的代价,所以前一个肯定不劣于后一个。
  • 若对于一对 \(j_1,j_2\),满足 \(j_1<j_2\)\(dp_{i,j_1}=dp_{i,j_2}\),则 \(dp_{i,j_2}\) 这个状态没用。这个只需要考虑 \(j_2\) 的转移点 \(k\),让 \(j_1\) 来转移会使 \(b_i\) 更小,\(c_i\) 更大,更不容易算到贡献。

因此我们的 DP 只需要维护最小值以及最小值 \(+1\) 最小的两个点即可,转移是平凡的,复杂度 \(O(n)\)

submission

AGC040D Balance Beam

考虑如果 A 和 B 同时开始跑,那么 A 肯定要按照 \(A_i-B_i\) 从小到大放这些石板才能尽可能抓住 B。

我们先来考虑如何确定 B 在前多少整块中开始跑一定会被抓住。如果我们将一个 \((A_i,B_i)\) 改成不被 \(B\) 经过,则首先其原来的 \(\max(B_i-A_i,0)\) 会没了,其次 A 还要多跑 \(A_i\) 距离,那么会造成 \(\max(A_i,B_i)\) 的代价,则我们肯定是按照这个代价从小到大选取直到不能选。

然后需要考虑接下来的一个散块 B 最多能从多少开始跑,这个只需要枚举这个散块是什么然后计算即可。

时间复杂度 \(O(n\log n)\),瓶颈在于排序。

submission

AGC019E Shuffle and Swap

我们考虑一个点 \(x\),其在 A 串而不在 B 串中。我们希望其要最终到一个在 B 串而不在 A 串的位置。

如果直接过去了显然是好的,否则其会跳到一个既在 A 中又在 B 中的位置,则这个位置上当跳的时候一定要为 \(0\),那么就变成了一个新的类似的问题,即要求将这个位置在此之前跳到一个在 B 串而不在 A 串的位置。

也就是说,对于一个在 A 串而不在 B 串的点,我们需要给其找到若干个既在 A 串又在 B 串的点作为中转点,以及一个在 B 串并且不在 A 串中的点作为结束点。

记只在 A 串的点的个数是 \(m\),两边都在的点数为 \(k\),首先要给 \(m\) 个起点和 \(m\) 个终点配对,然后要将 \(k\) 个点分配给 \(m\) 个起点,可以剩下来。

这相当于给 \(k\) 个点定一个顺序然后依次选取,乘上 \(k!\)

另外,假设给某个起点分配了 \(x\) 个点,则这 \(x+1\) 个点的顺序已经固定了,因此系数是 \(\frac{1}{(x+1)!}\)

\(F=e^x-1\),则我们就是要求 \(F^k\)\(x^m\)\(x^{m+k}\) 的系数和,将其展开即可 \(O(n^2)\) 计算。

submission

AGC018F Two Trees

欧拉!

我们考虑将题目的条件转化为:要给两棵树的每个点赋一个权值 \(-1/1\),并且在两棵树上,一个点的权值减去其所有儿子的权值之和相同。

将第二棵树的所有权值取反,我们就需要做:一个点的权值减去其所有儿子的权值之和在两棵树上的加和为 \(0\)

首先如果一个点的度数在两棵树上奇偶性不一样,就肯定不合法。那么现在一个点在两棵树上的度数之和为偶数。

考虑跑一个欧拉回路出来,令一条边 \((x,y)\) 的权值为深度更小的点的权值,则我们希望欧拉回路上 \(x\to y\to z\) 的两条边对 \(y\) 的贡献的加和为 \(0\),这容易做到,于是就可以构造出解了。

submission

AGC018E Sightseeing Plan

非常好组合计数,爱来自 Atcoder。

假设我们枚举了中间点 \((x,y)\),考虑其到两边两个矩形的方案数。

我们先来考虑 \((0,0)\to (x,[l,r])\) 内的点的方案数之和,这相当于 \((0,0)\)\((x+1,r)\) 的方案数减去 \((0,0)\)\((x+1,l-1)\) 的方案数。

然后类似推一推一个单点到一个矩形的方案数之和,发现这相当于 \((0,0)\) 到一个矩形差分一下的方案数。

这样就变成了有 \(16\) 个点二元组,对于每个二元组需要求出一个矩形内每个点到二元组内的点的方案数乘积之和。转化一下,相当于从起点走到终点在矩形内走的长度和。

可以考虑差分,用出去的时候走的距离减去进来的时候走的距离就是在矩形内走的距离。枚举如何进入矩形以及如何从矩形内走出来即可求出。

时间复杂度 \(O(n)\),但是带 \(64\) 倍常数。

submission

AGC017F Zigzag

首先考虑一层一层往下推,同时转移 \(m\) 条线,发现没有前途。

然后考虑一条线一条线 DP,设 \(dp_{i,S}\) 表示第 \(i\) 条线的状态为 \(S\),这样转移是 \(O(m4^n)\) 的,还是不牛。

发现如果我们这样 DP,限制就比较好处理,所以可以不用管这个限制,一个位一个位去转移。

我们设 \(f_{i,j,S}\) 表示第 \(i\) 条线的第 \(j\) 个位置还没确定,\(S\) 中前 \(j-1\) 个位置是当前线的状态,后面的位置是前一条线的限制状态。

如果当前位填 \(1\),上一条线第一个 \(1\) 就对当前的线没有限制了,可以直接删去。

如果当前位填 \(0\),则上一条线的当前位不能有仍然有限制的 \(1\)

转移容易做到 \(O(1)\),时间复杂度 \(O(nm2^n)\)

submission

AGC017E Jigsaw

将离地 \(0\) 长度 \(a\) 的看做 \(a\),离地 \(a\) 的看做 \(-a\),则两个积木能匹配相当于左积木的右边和右积木的左边互为相反数。方便起见,将所有积木左边取反,看做相等匹配。

我们考虑放到图上,一个左边为 \(a\) 右边为 \(b\) 的积木会让图上从 \(a\to b\) 有一个有向边。对于每个弱联通块分别考虑:

  • 如果这个弱联通块内所有点的入度减出度都为 \(0\),则不可能存在。
  • 否则,考虑所有入度减出度大于 \(0\)\(x\),其必须满足 \(x<0\),对于入度减出度小于 \(0\)\(x\),其必须满足 \(x>0\)。并且,还需要存在一种将起点和终点匹配的方式,使得整张图能被划分成若干欧拉路径。

可以证明,只要图满足上述条件,存在这样的划分方式以及欧拉路径。上面条件显然是必要的,考虑构造证明:新建一个超级源 \(S\),若 \(x\) 的入度比出度大 \(x\),则让 \(x\)\(S\) 连边补足出度,否则让 \(S\)\(x\) 连边补足入度。现在的图显然有欧拉回路,然后在这个图的欧拉回路中把和 \(S\) 有关的边扔掉就可以得到匹配方式和欧拉路径。

上述条件容易 \(O(n)\) 判断。

submission

AGC017C Snuke and Spells

记第 \(i\) 个位置上数的个数为 \(f_i\)

对于一种合法方案,\([i-f_i+1,i-1]\) 区间内是不能有数的。将这个看成一个区间,则一个合法方案要满足这样的区间不重不漏地覆盖了 \([1,n]\) 内所有点。

对于最小要修改的次数,一个下界就是这样的区间没有覆盖到的点的个数。而同时,我们可以使用一个贪心:从前往后·考察每个位置,如果其被多于一个区间覆盖,则肯定有某个区间端点是当前这个点,将这个区间的 \(f_i\) 中的一个移去填补没有被覆盖到的点,这样就可以取到这个下界。

而这个下界是容易线性维护的。复杂度 \(O(n+q)\)

submission

AGC016E Poor Turkeys

考虑在固定 \(i\) 一定存在的时候,会产生什么样的限制。

考虑按照时间从后往前做。对于一条边 \(x,y\),如果 \(x,y\) 都存活了,那么 \(i\) 肯定无法最终存在。否则,如果其中有一个已经存活了,则另一个就确定了被杀死的时间,也就是当前时刻,之后也就存活了。因此,钦定一个点最终存在就给某些点确定了被杀死的时间。

然后考虑两个点同时存在的时候的限制,一个简单的想法是直接按照上面跑,如果跑出矛盾了,也就是说一个点被确定了两次时间,就寄了。但是这样是 \(O(n^2m)\) 的,无法通过。

然后你发现,如果两个点都可以各自存在,那么两个点的限制应该是非常独立的:不能相交。因此,分别跑出两个点的限制之后,再看有没有一个点同时被两个点确定了时间即可。时间复杂度 \(O(nm+\frac{n^3}{\omega})\)

submission

AGC013F Two Faced Cards

我们考虑用 Hall 定理转化问题。当我们在一个二元组中选择了 \(x\) 之后,我们给一个序列 \(A\)\([x,\infty]\)\(+1\)。对于另一种卡牌 \(x\),给 \(A\)\([x,\infty]\)\(-1\)。如果两边卡牌数相等,则最后我们要求 \(A_i\geq 0\)

可以预见的,我们需要对于每个单面卡牌,求出把这张单面卡牌拿掉之后,二元组得分最大值,并且一旦这个求出来了,询问就好做了。转化成 Hall 定理,就是对于一个 \(x\),满足 \(i<x\)\(A_i\geq 0\),否则 \(A_i\geq -1\)

不妨假设 \(A_i> B_i\),我们先让所有点选择 \(A_i\),之后让最少的 \([B_i,A_i-1]\) 区间 \(+1\) 来满足条件。

接下来一步是比较思维跳跃的一步:考虑最大的 \(i\) 满足 \(A_i<-1\),找到包含 \(i\) 的左端点最小的区间 \([l,r]\),则 \([l,r]\) 一定被选。

分类讨论:

  • \(A_i\) 处限制是 \(\geq -1\),则 \(i\) 后面都满足了,那么一定选左端点最小的。
  • \(A_i\) 处限制是 \(\geq -1\),则 \(i\) 处被两个区间覆盖,\(i\) 后面只需要被一个区间覆盖就能满足条件,这样将两个区间中右端点较小的一个替换成当前这个一定不劣。

则我们可以用一个堆维护贪心。

之后 \(A_i\)\(\geq -1\),那么对于一个 \(x\) 的限制,就相当于选一些区间将 \(<x\) 处的 \(A_i=-1\) 都覆盖到,这个可以简单贪心。时间复杂度 \(O(n\log n)\)

submission

AGC011F Train Service Planning

\(s_i\) 表示 \(0\to n\) 的车从 \(i\) 站出发的时间,\(t_i\) 表示 \(n\to 0\) 的车到 \(t_i\) 的时间。如果我们不考虑 \(K\) 分钟一次的循环的话,那么如果 \(i\) 是单向线,则区间 \([s_i,s_i+A_i]\) 和区间 \([t_i-A_i,t_i]\) 交的长度为 \(0\)。而考虑了 \(K\) 分钟一次的循环之后,就要求这两个区间在 \(\bmod K\) 意义下不交。

初始的时候 \(s_0=0,t_0\) 可以等于任意值。每次经过一个站之后,会让 \(s_i\) 加上 \(A_i\)\(t_i\) 减去 \(A_i\),同时可以花费 \(1\) 的代价将 \(s_i\) 加上 \(1\)\(t_i\) 减去 \(1\),要求在单向线的时候区间不交。区间 \([s_i,s_i+A_i]\) 和区间 \([t_i-A_i,t_i]\) 不交的条件是 \(t_i-s_i\geq 2A_i\) 或者 \(t_i=s_i\),发现这只和 \(s_i,t_i\) 相对大小有关,并且两个改变 \(s,t\) 的操作对相对大小的改变是一样的,因此可以变成维护相对大小。

\(f_{i,j}\) 表示到了第 \(i\) 个站,相对大小为 \(j\) 的最小代价,每次要做的就是将 \(j\) 加上一个值,或者将一个区间求最小值之后删去,这个容易用珂朵莉树均摊维护,时间复杂度 \(O(n\log n)\)

submission

AGC002E Candy Piles

什么时候能想到放到网格上?什么时候能想到放到网格上?

考虑一个简单的 DP:设 \(f_{i,j}\) 表示删了 \(i\) 个最大的数,整体减一减了 \(j\) 次,是先手必胜还是后手必胜。

\(a_i\) 从大到小排序之后,这个东西就可以看成一个阶梯状的网格,变成,从 \((1,1)\) 开始,每次往上或者往右走一步,走出边界的人输了。

观察一下,会发现有 \(f_{i,j}=f_{i+1,j+1}\)。考虑分类讨论一下:

  • \(f_{i+1,j+1}\) 为先手必败,则 \(f_{i+1,j}\)\(f_{i,j+1}\) 为先手必胜,这样 \(f_{i,j}\) 就先手必败了。
  • 反之,则考虑 \(f_{i+1,j+1}\) 的哪个后继是先手必败的,不妨假设为 \(f_{i+2,j+1}\),则 \(f_{i+2,j}\) 就是先手必胜的,\(f_{i+1,j}\) 是先手必败的,那么 \(f_{i,j}\) 是先手必胜的。

因此,我们只需要找到 \((1,1)\) 不断往上走,走到边界,然后看一看两边能走的长度即可。

submission

posted @ 2024-05-09 22:10  275307894a  阅读(92)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end