Heavenaef 的每日亿唐
作者太唐了,于是他打算记录他(和别人)每天犯下的唐氏错误。
不定时长期更新中。
2025/10/17
上午
摆了,看洛谷神贴去了。
下午
Luogu P11816 / LibreOJ 5520 / QOJ 1250 Pionki
题目简介:一个 \(A \times B \times C\) 三维棋盘上有若干个棋子,每次操作可以将一个棋子像右 / 上 / 后移动,求若干次操作后是否能达到给定的状态。
\(A \le 10000, B, C \le 6\)。
本质上是求二分图完美匹配。注意到 \(B\) 和 \(C\) 很小,直接逐层状压轮廓线 DP 即可。
把轮廓线压成如下的结构体:
struct Stat {
ll val;
array<ll, 7> h; // 第 i 行选了几个数。
Stat() {}
Stat(ll x) : val(x), h({x, x, x, x, x, x, x}) {}
Stat(array<ll, 7> h) : val(0), h(h) {
for(ll i = 1; i <= y; i++) {
val += h[i] * pw[i];
}
}
};
注意到这里开了大小为 \(7\) 的数组。
但在 DP 转移过程中,我们要 check 一下下一行选了几个数:
for(ll l = st[k].h[j + 1]; l <= st[k].h[j]; l++)
于是当 \(j = 6\) 时,数组下标美美越界。
下午 & 晚上
摆了,看洛谷神贴去了。
(两个学校炸出 \(231\) 楼也够 NB 的)
2025/10/18
上午
神秘四黑模拟赛,T1 忘交,T3 Corrupt 不小心改成了 Ask。
\(140 \to 70\)。
2025/10/22
上午
气死我了我去。
太唐了,必须复更。
T1 100->30,T2 忘加 freopen,T3 神秘 CE。
\(235 \to 45\)

浙公网安备 33010602011771号