Loading

太经典了

POI2007 SKA-Rock Garden

一种分析问题的方式,首先我们发现反转时按照 \(y=x\) 对称,于是我们特别把 \(y=x\) 画出来。我们发现如果把其中一边的点全部反转答案不会更劣,做完了。

POI2007 DRZ-Trees

OIer 最喜欢的分类讨论!考虑交换两个位置 \(i,j\) 产生的贡献 \(|h_{i-1}-h_j|+|h_{i+1}-h_j|+|h_{j-1}-h_i|+|h_{j+1}-h_i|-val_i-val_j\)。分类讨论 \(||\) 的取法,一共 \(9\) 种情况。注意特判 \(1,n\) 和相邻两个数的情况。

POI2007 POW-The Flood

POI 题是好题,就是题意太难懂了。

POI2007 ATR-Tourist Attractions

tags:哈密顿路径,滚动数组状压 dp;

我吐了这题是满足 blabla 条件的最短路而不是最短路然后满足 blabla 条件。发现这是一个哈密顿链问题,并且看到 \(k\le 20\),容易想到状压 dp。但是 \(O(2^nn)\) 的空间开不下。实际上状压 dp 也是可以滚动数组的,发现这个 dp,集合每次大小只会增加一,按集合大小顺序转移,空间复杂度 \(O(n\binom{20}{10})\),可以开下。

POI2007 OSI-Axes of Symmetry

tags:计算几何,旋转卡壳;

如果这个对称轴经了一个点枚举这个点,然后一定把图形分成了两个面积相等的部分,旋转卡壳求出对应的点或者边即可。否则一定是一条边的中垂线,还是一样的旋转卡壳。复杂度 \(O(n)\)

EGOI2022 legowall

tags:容斥,计数 dp,平衡复杂度;

行之间是无所谓的,只考虑列设 \(f_n\) 代表 \(n\) 列的答案,\(g_n\) 代表所有情况,\(f_{n}=g_n-\sum_{j=1}^{i-1}f_jg_{i-j}\)。看到模数不让我们卷积!

然后我发现我不会多米诺排放。

思考行数为 \(2\) 的情况。直接状压凸不凸出来即可。注意到行之间顺序是无关的,所以只用记凸出来的个数即可,直接暴力转移,复杂度 \(O(nm^2)\)

设定一个阈值 \(B\),当 \(n\le B\) 时跑第一种,否则跑第二种。容易发现 \(B=(nm)^{\frac{2}{3}}\) 时最优。

WC2022 秃子酋长

tags:回滚莫队,链表;

我觉得回滚莫队没有比这题更典的了,虽然他显然有 \(n\frac{\log^2n}{\log\log}\) 做法。

考虑普通莫队,维护一个 set,然后插入删除。复杂度 \(O(n\sqrt{n}\log n)\)。然后你发现删除这件事我链表也能做,于是你搞一个只能删除的莫队,然后再加一个撤销,用链表替代 set 就好了,复杂度 \(O(n\sqrt{n})\)

联合省选2021 D1T2

神仙题。考虑先瞎jb搞一组方案,然后调整。发现调整实则对每列 \(+1-1+1-1...\) 或每行 \(+1-1+1-1\)。于是设每行 \(b_i\) 次,每列 \(c_j\) 次。需满足 \(0\le a_{i,j}+b_i+c_j\le 10^6\),额然后显然不能单纯性。考虑差分约束,但这看起来是个和分约束,于是在 \((i+j)\equiv 1\pmod 2\)\(b_i-c_j\),否则 \(c_j-b_i\) 即可。直接跑 spfa 被卡常?SLF、LLL用起来。

联合省选2021 D1T3

删除不好搞考虑从后往前变成加入。然后就变成那道经典题,考虑 floyd 从后往前即可。如何贡献到答案?只需记录经过的编号最小的边编号最大是多少,然后在这之前的才可以被贡献到。复杂度 \(O(n^3+m)\)\(n^3\) 怎么过 \(1000\)?要相信魔法。

联合省选2021 D2T2

考虑贪心,每个人拿尽可能少的题,剩下的题全丢给最后一个人。\(b_i\) 不降说明差分数组大于等于 \(0\)。又由贪心知我们只需考虑比前一个人多拿多少,也就是差分数组。所以我们可以从差分来考虑。也就是体积提前计算。设 \(f[s,i,j]\) 代表已经公布集合 \(s\) 里的人,最大值是 \(i\),已经用了 \(j\) 道题。预处理 \(c_{i,j}\) 代表 \(j\)\(i\) 前,\(i\) 需要多做几道题。转移就枚举下一个人即可。复杂度 \(O(2^nn^2m)\),怎么又要卡常/tuu。

AHOI2022 排列

link

容易发现 \(f\) 即为合并两个置换环后所有环长的最小公倍数。那么每个环具体是什么我们就不关心了,只需知道环长即可。准确的说只需知道每种长度的环有多少个。而最多有 \(O(\sqrt{n})\) 种禅古的环,那么直接暴力枚举两种长度的环即可。复杂度 \(O(n\log n)\)

AHOI2022 钥匙

首先考虑对每种颜色分别求解,那么我们可以把钥匙和宝箱看成一个括号匹配(怎么又是它),考虑在匹配的位置记入答案。那么可以枚举一对 \((1,2)\),看是否是一组匹配。然后计入答案就比较简单了,就是一个矩阵加,离线扫描线+树状数组即可。考虑如何判断?我们先把同一个颜色的数拿出来建虚树,然后考虑在虚树上往上跳,如果跳到某个位置不能匹配了就停止。容易发现跳的次数是常数(或者说是钥匙和宝箱个数的较小值)。于是这道题就做完了。

SDOI/SXOI 2022

posted @ 2022-03-30 21:40  Semsue  阅读(307)  评论(0编辑  收藏  举报
Title