做题记录(9.1~9.30)
数据结构
P1972 [SDOI2009] HH的项链
difficulty: \(\color{#3498DB}{蓝}\) \(\color{#CD3333}{easy!}\)
time: 2024.09.01
algorithm: 树状数组。
trick: 若干个询问区间 [l,r],若 r 都相等,那么对于项链中出现的同一个数字,只关心出现在最右边的那个。
P3402 可持久化并查集
difficulty: \(\color{#9D3DCF}{紫}\) \(\color{#FF1493}{ok!}\)
time: 2024.09.02
algorithm: 可撤销并查集。
trick: 离线,形成一个图,dfs 这个图,进行撤销操作。
tips: 可撤销并查集不能路径压缩。
树论/图论
P4768 [NOI2018] 归程
difficulty: \(\color{#9D3DCF}{紫}\) \(\color{#CD3333}{easy!}\)
time: 2024.09.03
algorithm: kruskal 重构树+dijkstra。
tips: 关于 SPFA,【】。
P3384 【模板】重链剖分/树链剖分
difficulty: \(\color{#3498DB}{蓝}\) \(\color{#FF1493}{ok!}\)
time: 2024.09.04
algorithm: 树链剖分模板。
P4281 [AHOI2008] 紧急集合 / 聚会
difficulty: \(\color{#3498DB}{蓝}\) \(\color{#CD3333}{easy!}\)
time: 2024.09.09
algorithm: lca
trick: 分别求出三个节点两两的 lca,利用深度计算距离。
P1813 拯救小 tim
difficulty: \(\color{#3498DB}{蓝}\) \(\color{#CD3333}{easy!}\)
time: 2024.09.09
algorithm: DAG 上 dp。
trick: dfs 遍历整个图的同时 dp。
P4822 [BJWC2012] 冻结
difficulty: \(\color{#3498DB}{蓝}\) \(\color{#FF1493}{ok!}\)
time: 2024.09.09
algorithm: 分层图模板。
trick: k 层图,每个点向每一层连边。
Lomsat gelral
difficulty: \(\color{#9D3DCF}{紫}\) *2300 \(\color{#FF1493}{ok!}\)
time: 2024.09.09
algorithm: DSU on tree 模板。
trick: 共三遍 dfs。
tips: 不要把函数名写错了。
Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths
difficulty: \(\color{#9D3DCF}{紫}\) *2900 \(\color{#FF1493}{ok!}\)
time: 2024.09.09
algorithm: DSU on tree。
trick: 重排后回文->字符出现次数为偶数。
tips: 数组不要开小,尽量开大一点。
Fast Travel Text Editor
difficulty: \(\color{#3498DB}{蓝}\) *2400 \(\color{#CD3333}{easy!}\)
time: 2024.09.09
algorithm: 01-bfs
trick: 建虚点,将相同字母的点连往同一个虚点,跑 01-bfs。
tips: 数组要开两倍。
P3320 [SDOI2015] 寻宝游戏 = 2
difficulty: \(\color{#9D3DCF}{紫}\) \(\color{#FF1493}{ok!}\)
time: 2024.09.14
algorithm: lca,kruskal
trick: dfn 序,getdis(x,y)=dis[x]+dis[y]-dis[lca(x,y)]*2
Anne's game
difficulty: \(\color{#52C41A}{绿}\) \(\color{#CD3333}{easy!}\)
time: 2024.09.23
algorithm: 凯莱定理
trick: \(n^{n-2}\)
P4430 小猴打架
difficulty: \(\color{#3498DB}{蓝}\)
time: 2024.09.23
algorithm: 凯莱定理
trick: \(n^{n-2}*(n-1)!\)
P6086 【模板】Prüfer 序列
difficulty: \(\color{#3498DB}{蓝}\) \(\color{#FF1493}{ok!}\)
time: 2024.09.23
algorithm: Prüfer 序列模板。
动态规划
Segment Sum
difficulty: \(\color{#9D3DCF}{紫}\) *2300 \(\color{#FF1493}{ok!}\)
time: 2024.09.04
algorithm: 数位 dp+状压
trick: 在数位 dp 的同时,用二进制记录目前使用过的数字。
tips: 数组不能开 long long,会 MLE。
P1813 拯救小 tim
difficulty: \(\color{#3498DB}{蓝}\) \(\color{#CD3333}{easy!}\)
time: 2024.09.09
algorithm: DAG 上 dp。
trick: dfs 遍历整个图的同时 dp。
Lucky Country
difficulty: \(\color{#9D3DCF}{紫}\) *2500 \(\color{#CD3333}{easy!}\)
time: 2024.09.10
algorithm: 多重背包。
trick: 将题意转化为背包问题,注意到不同的值不多,跑多重背包。
Maximum Monogonosity
difficulty: \(\color{#9D3DCF}{紫}\) *2500 \(\color{#FF1493}{ok!}\)
time: 2024.09.11
algorithm: dp
trick: 分类讨论拆绝对值,建辅助数组进行转移。
Black and White Tree
difficulty: \(\color{#9D3DCF}{紫}\) *2400 \(\color{#FF1493}{ok!}\)
time: 2024.09.11
algorithm: 换根 dp。
trick: 考虑符合条件的情况,进行转移。
P2516 [HAOI2010] 最长公共子序列
difficulty: \(\color{#3498DB}{蓝}\) \(\color{#FF1493}{ok!}\)
time: 2024.09.12
algorithm: dp
trick: 考虑网格图(题解1)。
tips: 检查下标是否可能为负。
[ABC252G] Pre-Order
difficulty: \(\color{#3498DB}{蓝}\) \(\color{#FF1493}{ok!}\)
time: 2024.09.20
algorithm: dp
trick: 枚举在以 i 为虚拟根的情况下子树的点 k。
Grid 2
difficulty: \(\color{#3498DB}{蓝}\) \(\color{#FF1493}{ok!}\)
time: 2024.09.23
algorithm: dp
trick: 设状态为从起点到第 i 个黑点的方案数,容斥原理。
数学
P3978 [TJOI2015] 概率论
difficulty: \(\color{#9D3DCF}{紫}\) \(\color{#CD3333}{easy!}\)
time: 2024.09.05
algorithm: catalan 数。
trick: 树的种类->卡特兰数。
[ARC108D] AB
difficulty: \(\color{#3498DB}{蓝}\) \(\color{#CD3333}{easy!}\)
time: 2024.09.07
algorithm: 分类讨论,计数。
tips: 特判 n=2 的情况。
P7521 [省选联考 2021 B 卷] 取模
difficulty: \(\color{#3498DB}{蓝}\) \(\color{#FF00FF}{hard.}\)
time: 2024.09.11
algorithm: 数学。
trick: 先想暴力,再进行优化(去重,排序,双指针),最后计算时间复杂度。
Number Table
difficulty: \(\color{#3498DB}{蓝}\) *2500 \(\color{#CD3333}{easy!}\)
time: 2024.09.09
algorithm: 数学。
trick: 每行填的最后一个数可以调整。抽屉原理得至少一个空行。
tips: 统计答案时注意不要越界。
P2261 [CQOI2007] 余数求和
difficulty: \(\color{#3498DB}{蓝}\) \(\color{#CD3333}{easy!}\)
time: 2024.09.16
algorithm: 数论分块
trick: k%i=k-(k/i)*i
P1082 [NOIP2012 提高组] 同余方程
difficulty: \(\color{#52C41A}{绿}\) \(\color{#CD3333}{easy!}\)
time: 2024.09.16
algorithm: exgcd 模板。
P4549 【模板】裴蜀定理
difficulty: \(\color{#CD3333}{easy!}\)
time: 2024.09.16
algorithm: 裴蜀定理模板。
P2613 【模板】有理数取余
difficulty: \(\color{#52C41A}{绿}\) \(\color{#CD3333}{easy!}\)
time: 2024.09.16
algorithm: 有理数取模模板。
tips: 输入的时候就可以取模。
P4301 [CQOI2013] 新Nim游戏
difficulty: \(\color{#3498DB}{蓝}\) \(\color{#CD3333}{easy!}\)
time: 2024.09.16
algorithm: 线性基。
trick: 后手必胜:异或和为 0。因此保证异或和不可能为 0。
P4570 [BJWC2011] 元素
difficulty: \(\color{#3498DB}{蓝}\) \(\color{#CD3333}{easy!}\)
time: 2024.09.16
algorithm: 线性基。
P3455 [POI2007] ZAP-Queries
difficulty: \(\color{#3498DB}{蓝}\) \(\color{#FF1493}{ok!}\)
time: 2024.09.17
algorithm: 莫比乌斯反演。
trick: 推式子。
P1829 [国家集训队] Crash的数字表格 / JZPTAB = 2
difficulty: \(\color{#9D3DCF}{紫}\) \(\color{#FF1493}{ok!}\)
time: 2024.09.17
algorithm: 莫比乌斯反演+两次数论分块。
P5651 基础最短路练习题
difficulty: \(\color{#FF00FF}{hard.}\)
time: 2024.09.22
algorithm: 异或
trick: 考虑异或的性质,注意到 “保证 G 中不存在简单环使得边权异或和不为 0”。
P4151 [WC2011] 最大XOR和路径
difficulty: \(\color{#9D3DCF}{紫}\) \(\color{#FF1493}{ok!}\)
time: 2024.09.23
algorithm: 线性基,异或
trick: 将环缩成点,扔进线性基。
博弈论
Integer Game
difficulty: \(\color{#9D3DCF}{紫}\) *2600 \(\color{#CD3333}{easy!}\)
time: 2024.09.11
algorithm: 博弈论。
trick: 先手必胜。注意到 k 的限制很大,可以加上很大的数,构造等差数列。
World of Darkraft
difficulty: \(\color{#9D3DCF}{紫}\) *2500 \(\color{#FF1493}{ok!}\)
time: 2024.09.11
algorithm: sg 函数。
trick: 将数组旋转 45 度,定义 sg[x1][y1][x2][y2][p] 为 [x1,y1] 到 [x2,y2] 矩阵的 sg 值。
tips: sg 函数必须开大一点(22->52),异或等运算要加上括号。
P1512 伊甸园日历游戏
difficulty: \(\color{#52C41A}{绿}\) \(\color{#CD3333}{easy!}\)
time: 2024.09.20
algorithm: 思维。
trick: 注意到 +1 会改变奇偶性,因此特判两个日期即可。
P7078 [CSP-S2020] 贪吃蛇
difficulty: \(\color{#0E1D69}{黑}\) \(\color{#FF1493}{ok!}\)
time: 2024.09.22
algorithm: 思维。
trick: 如果蛇吃了之后不会成为最弱的则吃,否则不吃。
模拟
P1039 [NOIP2003 提高组] 侦探推理
difficulty: \(\color{#3498DB}{蓝}\) \(\color{#CD3333}{easy!}\)
time: 2024.09.04
algorithm: 模拟。
tips: 循环上界不要打错。
构造
Toy Machine
difficulty: \(\color{#9D3DCF}{紫}\) *2700 \(\color{#FF00FF}{hard.}\)
time: 2024.09.11
algorithm: 构造。
trick: 分类讨论 <n/2+1 和 >n/2 的情况,手玩得出答案
深度优先搜索/广度优先搜索
Three States
difficulty: \(\color{#9D3DCF}{紫}\) *2200 \(\color{#CD3333}{easy!}\)
time: 2024.09.10
algorithm: bfs
trick: 先预处理每个点到每个国家最近的距离,再枚举每个点计算总距离。
字符串
P1723 高手过愚人节
difficulty: \(\color{#3498DB}{蓝}\) \(\color{#CD3333}{easy!}\)
time: 2024.09.07
algorithm: manacher。
tips: 多测清空。
Extend to Palindrome = 2
difficulty: \(\color{#3498DB}{蓝}\)/\(\color{#9D3DCF}{紫}\) \(\color{#CD3333}{easy!}\)
time: 2024.09.10
algorithm: manacher
trick: 先做 manacher,然后根据 p 数组找最长回文后缀的长度(满足 \(i+p_i-1==n\))。
P10833 [COTS/CETS 2023] 下 Niz
difficulty: \(\color{#9D3DCF}{紫}\) \(\color{#FF00FF}{hard.}\)
time: 2024.09.18
algorithm: 哈希。
trick: 判有无相同的数->异或哈希。
分块
P4462 [CQOI2018] 异或序列
difficulty: \(\color{#3498DB}{蓝}\) \(\color{#CD3333}{easy!}\)
time: 2024.09.11
algorithm: 莫队。
### []()
difficulty:
time: 2024.09.
algorithm:
trick:
tips:
$\color{#CD3333}{easy!}$ (自己想出)
$\color{#FF1493}{ok!}$ (看了提示)
$\color{#FF00FF}{hard.}$ (看题解)
$\color{#52C41A}{绿}$
$\color{#3498DB}{蓝}$
$\color{#9D3DCF}{紫}$
$\color{#0E1D69}{黑}$