日记 2023.3.17:2023 syzx 春季训练 3

题目链接

phtoi

QOJ

#5817 小学生数学题GDKOI 2023 普及组 Day 1 [0]
#5818 MacaronGDKOI 2023 普及组 Day 1 [-1]
#5819 淋雨GDKOI 2023 普及组 Day 1 [0]
#5820 置换GDKOI 2023 普及组 Day 1 [0]
#5821 交换机GDKOI 2023 普及组 Day 2 [0]
#5822 城市建设GDKOI 2023 普及组 Day 2 [0]
#5823 海星GDKOI 2023 普及组 Day 2 [0]
#5824 HimitsuGDKOI 2023 普及组 Day 2 [0]
#5825 矩阵GDKOI 2023 提高组 Day 1 [0]
#5826 错排GDKOI 2023 提高组 Day 1 [+2]
#5827 异或图GDKOI 2023 提高组 Day 1 [+2]
#5828 游戏GDKOI 2023 提高组 Day 2 [+2]
#5829 马戏团里你最忙GDKOI 2023 提高组 Day 2 [0]
#5830 树GDKOI 2023 提高组 Day 2
GDKOI2023选手成绩单、题目、数据参见:
https://gdoi.gdcpc.cn/file/certs/

题目数据在内部公开,密码为:
## 提高Day1
### 题面
@Hao*#Jiu/Bu^Jian@
### 数据
HI/Sa!SHI&Bu!RI
## 提高Day2
### 题面
@Xia//Ci&Zai*Lai@
### 数据
MA#TA$$A^SHI&TA
## 普及Day1
### 题面
hi$sa@shi&bu!ri
### 数据
@hAo*#jIu/bU^jIan@
## 普及Day2
### 题面
ma#ta$a^shi&ta
### 数据
(xiA\\cI&zaI*laI)

A(PJD1T3)

先别管起始点。假装 \(f_i\) 是在 \(t_i\) 时刻时那个人在 \(x_i\)

\[f_i=1+\max_{j<i,check(j,i)}f_j. \]

重点在于:

\[check(j,i)=[\frac{|x_i-x_j|}{t_i-t_j}\leq V] \]

\[=[|x_i-x_j|\leq V(t_i-t_j)]=[|x_i-x_j|\leq Vt_i-Vt_j)] \]

\(x_i<x_j\)

\[check(j,i)=[x_j-x_i\leq Vt_i-Vt_j]=[-x_i-Vt_i\leq-Vt_j-x_j] \]

否则

\[check(j,i)=[x_i-x_j\leq Vt_i-Vt_j]=[x_i-Vt_i\leq x_j-Vt_j] \]


以下看了题解。

我们可以认为,这两个东西需要同时满足,因为一个满足了另一个也满足了。

再分讨 \(t_i<t_j\),得到:\(check(j,i)=check(i,j)\),简单来说就是可以不管。

所以就是平面上一些点 \((-x_i-Vt_i,x_i-Vt_i)\),然后要求一个不降子序列,\(x,y\) 分别单调这样子。

对于第一问,加入并强制选择 \(0\) 号点。对于第二问,没有任何限制。

对着 \(x\) 排序,变成了最长不降子序列问题。

B(PJD1T2)

一个类似扫描线的东西,反正乱做

C(PJD2T4)

flow

PJD1T4

一个置换珂以拆成很多个置换环。

结论:一个长度为 \(len\) 的置换环经过 \(k\) 次操作后会拆成 \(\gcd(len,k)\) 个环。

考虑输出最终序列长度为 \(len\) 的置换环有 \(cnt_{len}\) 个,那么长度不一样的环不可能在 \(k\) 步之前在一起,
所以不同的 \(len\) 珂以分开,最终乘起来。

\(len\) 为常数时,

\[f(cnt)=\sum_{i\leq cnt}f(cnt-i)\binom{cnt-1}{i-1}(i-1)!len^{i-1}[\gcd(i\times len,k]=i] \]

最后一个变成 \(i|k\) 可大大减少枚举量。

PJD2T2

整除分块,尽量均分。

POJ3318(TGD1T1)

为什么暴力都错啊。

TGD1T2

莫队。推关于 \(i,j\) 不变的递推式。

TGD1T3

数位 DP 部分:枚举哪一位哪一个数没顶满了,其他数可以乱填。\(O(n\loh V)\)

考虑容斥,钦定一些边是相同的,别的边没有限制,这样形成好多个连通块。如果大小为偶数珂以扔掉,否则限制是这个连通块的最小值,然后把这些最小值拎出来数位 DP。

钦定哪些边相同未免有些暴力,不如枚举最终的连通块。我们求出 \(g_S\) 表示点集 \(S\) 形成的连通块的容斥系数(\((-1)^{|E'|}\)

\[g_S=0^{|E_S|}-\sum_{x\in T\subseteq S}g_T. \]

\(f_{S,T}\) 表示:当前考虑了点集 \(S\),最终要加入数位 DP 的最小值有 \(T\)。枚举新的连通块 \(K\),随意转移。最后拎出所有 \(f_{U,T}\) 数位 DP。

\(O(4^n)\)

G(TGD2T1)

找直径。

在直径下挂的最长的链尾为答案。

TGD2T3

\(a\oplus b=a+b-2(a\text{ and }b)\)

考虑按照深度扫描线,拍成 dfn 序在树状数组上。

考虑加法:分别维护 \(w,dep,cnt\),然后就硬扫

考虑 AND,考虑拆位,但是这里要减去 \(dep_u\) 所以不太好直接拆。
考虑深度 %2=0,%2=1,%4=0,%4=1,%4=2,%4=3,... 这样就能对着减,维护贡献。但感觉是假的。

posted @ 2023-11-06 15:13  caijianhong  阅读(65)  评论(0编辑  收藏  举报