USACO 绿-蓝 思维题小记

P6005 [USACO20JAN] Time is Mooney G
dj 跑最长路是错的,可以以经过边数为阶段 \(O(nm)\) dp

P6149 [USACO20FEB] Triangles S
枚举每个点,四个象限分讨,前缀和+二分做完

P6278 [USACO20OPEN] Haircut G
我的想法是关注每个数前面有多少比它大的数,那么每一轮改变的数总和是 \(O(n)\) 的,再用树状数组维护即可

P9127 [USACO23FEB] Equal Sum Subarrays G
暴力枚举,把区间分为不包含 \(i\) 和包含 \(i\) 两部分,从中各选一个数,求差的绝对值的最小值。可以把所有区间的和排序,用相邻区间差的绝对值更新即可

P7149 [USACO20DEC] Rectangular Pasture S
\(x,y\) 互不相同是很好的性质,可以离散化,枚举两行,然后推一推做完

P8266 [USACO22OPEN] Photoshoot B
很奇妙的题,偶数位置反转既是限制也是关键,我们发现只有 \(GH\)\(HG\) 翻转会使答案改变,考虑转换为 \(01\) 串相当于让一段前缀 \(0\)\(1\)\(1\)\(0\)

P8271 [USACO22OPEN] COW Operations S
手玩样例发现操作 \(2\) 可以逆向操作,进一步发现一个区间中的 \(W\)\(O\) 可以相互消除,与位置无关,然后推推结论就做完了

P11454 [USACO24DEC] 2D Conveyer Belt S
代码里有思路

P11672 [USACO25JAN] Table Recovery S
交换行列有一个很好的性质,就是执行后每一行每一列的数字会变成原来的行、列的排列,考虑交换数,定义 \(real[i]\) 表示在输入数组中值为 \(i\) 的数在答案数组中的真实值为多少。从每个数的出现次数考虑,出现次数为 \(1\) 的数的位置只有两种情况,且他们所在的 行/列 所有数的出现次数均不相同,于是可以求出 \(real\) 数组

posted @ 2025-10-17 20:30  huangyuze  阅读(7)  评论(0)    收藏  举报