2023.6.27 闲话

「jijidawang的符号学为什么起步这么早。」但是,符号学是啥啊。

语录

纯悦:你是屎吧。

纯悦:你去屎吧。

纯悦:我要成为内鬼!(指 S2)

纯悦:APJ 这个,很持久啊。

纯悦:我是 0↗

纯悦:你也知道你只会贺啊。

纯悦:别自闭啊,我还要找乐子呢。

纯悦:我老婆只有一个,剩下都是妾。

纯悦:xht 你怎么还卷 ABC 啊。这么简单的 ABC 你还卷,xht。

纯悦:让我来给他们讲状压 DP,插头 DP,各种 DP!所有 DP 全让我讲!

纯悦:所有神给我站一边!Keven_He 我就是帅!

纯悦:你怎么全是闲话,傻逼。

纯悦:(Kaguya)她怎么刚关注我!
纯悦:郭佩奇关注了我!

纯悦:德与行不可兼备。

纯悦:我草,我好牛逼,我怎么认识这么多人。

纯悦:(jijidawang)估计每个人看到你 id 都会想锐评。

K8He 怒 d 喵喵给他关机浪费了他 10min,呃呃 .

STAOI 来了个大神 zifanwang,膜拜!

Akira Complex 自杀了?????? 好像是真的。昨天晚上我九点回去然后过了不到十分钟就有消息。感觉是昨天最大的事。(选自 gtm1514)

ARC111C Too Heavy

首先如果初始状态有不是自己的行李换不出去的肯定无解,那么先排掉这种情况 .

\(p_i\) 构成若干个置换环,那么让每个置换环内体重最大的做中转给每个人换,不难发现只需要考虑体重最大的会不会中间操作不了了,但是根据前面的讨论这种情况已经被排除,所以此时一定有解 .

每个非环内体重最大的人都交换了恰一次,于是可以发现这种操作方案肯定是最优的 . 时间复杂度 \(\Theta(n)\),可以通过 .

ARC112C DFS Game

有点麻烦的题目,题面也很容易让人读错 . 思路并不困难,不难想到设计树形 DP,转移类似 Minimax 搜索 .

\(dp_u\) 表示先手在 \(u\) 的子树最多获得多少硬币,那么转移就是把儿子 \(v\) 分成三类:

  • \(\newcommand{\size}{\operatorname{size}}\size(v)\) 为偶数且 \(dp_v<\size(v)-dp_v\) .
  • \(\size(v)\) 为偶数且 \(dp_v\ge\size(v)-dp_v\) .
  • \(\size(v)\) 为奇数 .

依此转移即可,注意第三类最后决策,时间复杂度 \(\Theta(n\log n)\),比较精细实现应该可以线性 .

ARC112D Skate

这种东西为啥我总想不到 . 如果 \((x,y)\) 位置是 # 则连边 \(x-y\),于是问题可以改成最少加多少条边使得整张图连通 .

并查集行列分别算连通块数量即可,不算反 Ackermann 函数时间复杂度 \(\Theta(nm)\) .

ARC112E Cigar Box

将终止状态分为三部分,分别是移到左边的,没动过的和移到右边的 .

于是枚举一段递增区间,设其左边有 \(l\) 个数,右边有 \(r\) 个数,则考虑计数移动方案 . 每个数看成一种颜色,那么就是先把 \(m\) 次操作染 \(l+r\) 个颜色,每个颜色都要有至少一个 . 那么就是有标号小球放到无标号盒子(因为合法的盒子顺序肯定只有恰一种)里,这是第二类斯特林数 . 然后还需要考虑哪些操作移到左边哪些移到右边,这个组合数算就行了,注意只有最后一次操作有效,所以剩下的 \(m-l-r\) 次操作随便选就行,综合起来,方案数就是:

\[f(l,r)={m\brace l+r}\dbinom{l+r}l2^{m-l-r} \]

直接计算即可,时间复杂度 \(\Theta(n^2)\) 其中假定 \(n,m\) 同阶 .

ARC114C Sequence Scores

考虑依次加入元素以生成序列 \(\{a\}\),那么加入一个元素 \(x\) 使得操作次数增加当且仅当 \(x\) 没有出现过或者 \(x\) 到他上一个出现的位置有一个比它小的 .

不难想到单步容斥改成所有位置都比它大,那么枚举上一个出现的位置可以得到在 \(n\) 处加元素 \(x\) 的方案数:

\[f(n,x)=m^{n-1}-\sum_{i=1}^{n-1}(m-x)^{n-i-1}\cdot m^{i-1} \]

答案就是

\[\sum_{i=1}^n\sum_{k=1}^mg(i,k) \]

要求 \(g\) 的一行,可以递推处理,时间复杂度 \(\Theta(nm)\),可以通过 .

ARC114E Paper Cutting 2

根据拒绝采样法原理,改成不割矩形、矩形内随便选直线不影响答案 .

那么可以根据期望线性性,考虑计算矩形内每一条和边界平行的线段产生的贡献 . 设矩形上下左右分别有 \(u,d,l,r\) 条线,总共 \(s\) 条 . 不妨令目前考虑左边的第 \(i\) 条线,则选中其他线的概率就是 \(\dfrac{u+d+r+i-1}s\),选中这条线的概率就是:

\[\sum_{k\ge 0}\left(\dfrac{u+d+r+i-1}s\right)^k\dfrac 1s=\dfrac1{s-(u+d+r+i-1)} \]

直接算即可,不算求逆元时间复杂度 \(\Theta(h+w)\) .

ARC115D Odd Degree

流汗 .

对于每个连通块考虑,首先想树咋做,然而叶子确定之后显然可以推出整棵树的连边情况,所以树的答案就是 \(\binom nk\) .

那么如果是任一无向图就先随便整一棵生成树出来,这样非树边随便选后面根据上面的方法构造即可,所以就是 \(2^{m-n+1}\binom nk\) .

合并就是卷积,用背包暴力做就是 \(\Theta(n^2)\),用科技就是 \(O(n\log^2n)\)(大概吧).

ARC116C Multiple Sequences

虽然简单但是还是想记一下 .

首先考虑改成元素不能重复的,枚举本质不同元素个数后乘组合数即可计算答案 .

然后朴素 DP 即可,可以注意到本质不同元素个数肯定不大于 \(\log m\),于是时间复杂度为 \(O(n+m\log^2m)\),可以通过 .

ARC116D I Wanna Win The Game

考虑拆位处理异或,那么令 \(dp_i\) 表示元素和为 \(i\) 时的方案数,枚举最后一位是 1 的个数即可得到转移:

\[dp_i=[2\mid i]\sum_{2\mid j}\dbinom njdp_{\frac{i-j}2} \]

直接计算即可,时间复杂度 \(O(n^2)\) .

ARC116E Spread of Information

首先二分答案,就变成对于一个覆盖半径问至少需要多少点 .

这个问题可以贪心处理,按 DFS 序考虑,如果子树内覆盖不到就选上,可以发现这样肯定最优 .

于是就在 \(\Theta(n\log n)\) 的复杂度内解决了问题 .

ARC117C Tricolor Pyramid

把三种颜色标号为 \(0,1,2\),则如果底层的两种颜色为 \(c_1,c_2\),则上层的颜色可以表示为 \(-(c_1+c_2)\bmod 3\) .

那么根据类似杨辉三角的推导可以得到顶层的颜色就是:

\[\left((-1)^{n+1}\sum_{i=0}^{n-1}\dbinom{n-1}i\cdot c_{i+1}\right)\bmod 3 \]

其中 \(\{c\}\) 是底层颜色序列 .

那么直接计算即可,组合数需要使用 Lucas 定理计算,时间复杂度 \(\Theta(n\log n)\) .

ARC117D Miracle Tree

将点权从小到大排序,让标号排列为 \(\{p\}\),则只需要满足相邻的项的距离限制,也就是 \(E_{p_{i+1}}-E_{p_i}\le\operatorname{dist}(p_i,p_{i+1})\),别的位置可以用三角形不等式调整得到满足限制 .

关于限制,显然全部取等是可以的,于是可以导出的是 \(\displaystyle E_{p_k}=1+\sum_{i=1}^{k-1}\operatorname{dist}(p_i,p_{i+1})\) .

那么问题就变成了找到排列 \(\{p\}\) 使得 \(\displaystyle\sum_{i=1}^{n-1}\operatorname{dist}(p_i,p_{i+1})\) 最小了,看起来比较经典 .

首先加上 \(\operatorname{dist}(p_n,p_1)\) 之后按 DFS 序选就可以取到下界 \(2(n-1)\),那么只需要最大化 \(\operatorname{dist}(p_n,p_1)\),取直径端点即可 .

时间复杂度 \(\Theta(n)\) .

具体有一些实现技巧,可以看 Creater_157 大神的博客 .

ARC118D Hamiltonian Cycle

考虑把 \([0,p)\) 每个数写成 \(a^i\cdot b^j\bmod p\) 的形式 .

具体地,令 \(n=\operatorname{ord}_p(a),\ m=\underset{j}{\mathop{\text{arg min}}}\{b^j\in\mathcal H\}\),其中 \(\mathcal H=\{a^i\mid i\in\mathbb Z\}\) . 则构造一个 \(n\times m\) 的矩形 \(G_{a,b}\),第 \(i\) 行第 \(j\) 列放 \(a^i\cdot b^j\bmod p\) .

结论:对于每个 \(x\in G_{a,b}\),都有唯一的 \(i\in[0,n),\,j\in[0,m)\),使得 \(x=a^i\cdot b^j\bmod p\) .

存在性用带余除法即可简单证明,考虑证明每个数出现次数不超过 \(1\)

假设存在 \(i_1,i_2,j_1,j_2\)(范围同上)满足 \(a^{i_1}b^{j_1}\equiv a^{i_2}b^{j_2}\pmod p\) .

不妨令 \(j_1\le j_2\),则 \(a^{i_1-i_2}\equiv b^{j_2-j_1}\pmod p\),可以发现 \(b^{j_2-j_1}\in\mathcal H\),根据 \(m\) 的定义可以知道 \(j_2-j_1=0\),也就是 \(j_2=j_1\),那么就可以得到 \(a^{i_1}=a^{i_2}\),因为 \(i_1,i_2<n\),所以肯定有 \(i_1=i_2\) . 由此就证明了每个数出现次数不超过 \(1\) .

这样的话,如果 \(nm\neq p-1\) 无解,否则考虑构造一组解 . 也就是考虑在 \(G_{a,b}\) 中构造一条哈密顿回路 .

首先特判 \(n=1\)\(m=1\) . 那么剩下的情况 \(p\) 肯定是奇数,从而根据 \(nm=p-1\) 可以得到 \(nm\) 中至少有一个偶数 . 后面的构造就不困难了,放一个官方题解的图,其余可以看官方题解 .

posted @ 2023-06-27 20:51  Jijidawang  阅读(107)  评论(5编辑  收藏  举报
😅​