Loading

2024 09 做题笔记

模拟赛笔记和做题笔记分开了。

0903

AT_arc183_d [ARC183D] Keep Perfectly Matched:先找到怎样操作是合法的,自己想的时候没想出来,其实条件比较强,需要路径上匹配和非匹配边交叉,可能需要手玩得出,其次考虑如何最大化,先考虑贪心或者构造这样不用最优化手段的技巧,这个题是可以直接构造出最优解的,关键在于注意到每次选两个子树不同的叶子最优,这时候考虑找出重心并尝试能否构造。答案是可以的,每次把目前匹配到的子树里选一个叶子和没匹配到的子树选一个叶子,尽量选择子树大小比较大的,不难发现这样是合法的。

AT_arc183_e [ARC183E] Ascendant Descendant:没看到只能邻项交换,想了一个小时。先考虑能移动到的位置建出树形结构,但是这样是没法随便交换的,因为这个区间可能会有一些子区间然后被挡住,所以其实这个点能到的就是所处的最小子区间,于是直接对这样的子区间统计然后计数即可。

0904

CF2006C Eri and Expanded Sets:太深刻了,考虑差分后不能操作的条件,一个显然的条件是所有数都必须是奇数,还有一个不容易发现的条件是全部数字都必须相同,否则你可以合并并拆分两个不相同的,然后双指针+区间 gcd。

CF2006D Iris and Adjacent Products:太深刻了,考虑如果我们知道了最终序列,最优排列一定是最大值和最小值交叉,接下来一步很巧妙的转化是由乘积想到根号分治,把所有数分成大于根号和小于根号两类,小于的里面可以自己匹配,大于的则可以从小到大排序,然后贪心地考虑当前能匹配到的最大的数进行匹配,考虑模拟这个过程并计算有多少大数没有被匹配到,注意到小于根号的数字数量是可以接受的,每次枚举一个 \(i\) 找到所有最晚必须和它匹配的所有数,加进来然后暴力匹配计算一下即可。

0905

AT_joisc2017_b 港湾設備 (Port Facility):板板题,但是没有想出来感觉很不应该。一个很显然的结论转化是一个区间和所有有交区间都不能同时选,直接考虑对这些区间做并查集连边,按照左端点排序后合法的为前面右端点在指定区间内的区间,线段树维护一下点的合并就做完了。

0907

AT_joisc2017_a 開拓 (Cultivation):想到了钦定一个区间然后算另外一维的最小答案,但是从各种意义上方向都错了。首先钦定一个区间算另一维就是排序之后对于 \(r\)\(l\)\(r+l\) 有限制,这个是可以 \(O(n)\) 求的,另外一个很重要的观察是不去考虑左右端点,而是发现长度相等的情况下形态不变,可以双指针,所有长度也只有 \(O(n^2)\) 种,就是考虑何时需要超过另一个节点。

AT_joisc2017_c 手持ち花火 (Sparklers):不是很会做这种题,感觉没办法很好地转化成形式化语言从而简洁地思考问题。第一个观察是拿到火之后不立刻点燃,而是一直跟着直到原来的耗尽,我想的是分开跑,这步方向就错了,考虑第一个汇合的位置时也应该仔细考虑下一步,接着就是简单的了,每次拿着火炬的人要么往左跑要么往右跑,就相当于有两个栈里有元素,每次可以先扣血后加血,问能不能不死结束,这部分就是先考虑两边一个尽量小的前缀使得能加血,如果两边都走不到显然无解,最后直到两边都不能加血,接下来很妙,时光倒流也是扣血再加血,但是必然最后是加血的,可以沿用上面的算法。

0909

P11038 【MX-X3-T5】「RiOI-4」Countless J-Light DecompositionL:开始写的根号分治,然后常数巨大无比,1e5 都跑不过去,去看题解发现其实你考虑每次度数大于 \(i\) 的所有点构成的虚树大小就是线性的,不用分治,因为这个是跟度数总和有关的,剩下的就是每次在原先的基础上建虚树然后 dp,没用的叶子的边放到一个数据结构里每次找第 k 大,就不用再二分了,先把不用加边的算上,再和最大需要加边的取 max 即可,找第 k 大可以对顶堆,复杂度可以设一个势能函数证明,很好写。

P11039 【MX-X3-T6】「RiOI-4」TECHNOPOLIS 2085:比较常规的计数题,但是学到了 prufer 序列应用,考虑虚树,每次一定是要么在边上挂点要么在下面挂点,考虑拆开,分成在原来虚树边上的和挂到前面所有上的,第一部分好算,第二部分考虑把一个大块看做一个点,prufer 序列最后会删掉 n-1 个点,这些数列位置上随便填,剩下的一个点必须接在原来的树上,乘一个系数就可以了,还需要枚举根,也是简单的、

P11036 【MX-X3-T3】「RiOI-4」GCD 与 LCM 问题:感觉有点太牛了,考虑 subtask 启发的奇数的情况,从特殊情况入手,然后扩展到偶数,拆开 2 然后类似地把系数分在两边真是太牛了!感觉能猜到的都有点外星人基因了。

0910

AT_joisc2017_d 切符の手配 (Arranging Tickets):太神秘了,这玩意第一眼看上去根本不可做,这些性质到底是怎么推断出来可能存在的?首先一个比较显然的是翻转之后显然全部交非空,然后你发现交里必定有一个不会和 max 差太大以及原本是 max 的数,不符合可以考虑反证,如果差太大直接考虑翻转区间,可能关键点在于注意到翻转分配是很灵活的,我们有办法尽量让两边差距不太大。然后二分答案就做完了。

0911

AT_joisc2017_f 鉄道旅行 (Railway Trip):笨比题,想假了,以为倍增是假的。直接考虑每次一定走两边第一个大于等于它的,然后两个点要在某个点汇合,如果你观察到了单峰性这个就是显然的,然后倍增这个过程,倍增的合法性在于记录了第 \(2^k\) 步到底是在左边还是在右边。

AT_joisc2017_h 細長い屋敷 (Long Mansion):我的是性质做法,考虑所有出不去的区间,对每个点扫描求出最小这样的区间,性质保证左端点最大的时候一定是最优的,于是贪心做就好了,但是怎么有记忆化搜索做法把我这个爆了,哎。

0912

ucup semifinal A,C,找规律和期望 dp,比较简单,也许可以出在模拟赛里。

0913

AT_arc162_e [ARC162E] Strange Constraints:直接倒序考虑,这有助于我们简化限制,并以一种更方便的顺序进行计数,每次做背包枚举一个颜色并加入,记录一些要素来处理计数问题,复杂度可以分析得出是三方的。

0916

P11063 【MX-X4-T3】「Jason-1」数对变换:感觉这个题非常好啊,考虑减小 \(ab\),根据 \(cd\) 大小每次调整掉一半,部分分很有启发性。

P11064 【MX-X4-T4】「Jason-1」一步最优:赛时死活没想出来,不过猜的结论倒是对的,不太应该。考虑每次选极大极小为什么是对的,考察一些跟区间有关的性质发现这样的极大极小区间都是不交的,这么选一定最优最劣。

0918

CF888F - Connecting Vertices:dp in 括号匹配,学习了括号匹配的 dp 技巧,这题考虑从极大区间入手,考虑合并的时候是包含关系还是合并关系(类似括号匹配的并还是左右都有),然后分讨得出转移,关键在于转换不交到类似区间 dp 的结构上。

CF1806D - DSU Master:考虑是儿子的条件,根据条件思考应该如何构造排列,从逐个插入的角度进行入手。

0919

找了点 atc 计数题做。

AT_arc144_d [ARC144D] AND OR Equation:差一步转化,转化题目之后考虑从什么角度去统计计数对象,如果枚举 \(a_0\) 你发现不太方便,直接确定其他的之后 \(a_0\) 的方案数反而是好求的,列出柿子发现类似范德蒙德卷积,然后做完了。

AT_abc273_g [ABC273G] Row Column Sums 2:独立想出,很简单的 dp,考虑常见模型之后限制是很松的,直接 dp 即可。

AT_agc012_d [AGC012D] Colorful Balls:独立想出,简答性质题,对两类关系分别讨论并注意到这种能交换的关系是有传递性的,问题变成了连边,然后大致讨论一下发现只要考虑最小值和次小值即可,发现传递性会让思考变简单。

0923

AT_agc065_c [AGC065C] Avoid Half Sum:逆天 MO 题,简单分析一下你会发现这等价于判断是否存在一组构造使得有部分和为总和的一半,而这是很难判定的,这个性质指出我们必须要往猜结论上靠,考虑一些偶数取 0,奇数取 0 或 1 的构造可以发现有解的情况往往跟存在一个比较大的数有关,到这步之后我就不会做了,感觉还得对充分性进行一个类似山河重整第一步那样的分析。看题解发现题解的思路差不多就是这样,直接从零开始加,有满足条件则可以表示所有数的结论。然后就是必要性以及一些讨论,感觉还是很困难的。

qoj9314 The Median of the Median of the Median (icpc 网络赛 R1 G):比较巧妙的题目,首先观察一下本质发现如果我们把 \(b_{l,r}\) 求出来,要求的就是矩形中位数的中位数,这不好做。中位数一个经典做法是二分,考虑二分按照大于小于分 01,问题转化为计数多少个子区间和是正的,扫描线+数点,这里值域很小可以直接移动指针。

qoj9315 Rainbow Bracket Sequence(icpc 网络赛 R1 H):想了一个小时怎么转化限制,去看题解发现是暴力建图网络流,思维还是太 OI 了,建图是好做的。

qoj9319 Bull Farm(icpc 网络赛 R1 L):考察每次操作要么是置换要么是两条单向边,置换的话因为是双向边,有用的不超过 \(O(n)\) 条,单向边也不会很多,然后就是最小瓶颈路,暴力 dij 即可,由于值域很小,堆可以换成桶。

posted @ 2024-09-01 16:09  eastcloud  阅读(111)  评论(0)    收藏  举报