USACO 乱做

USACO22JAN] Minimizing Haybales P

就是考虑新加入点 \(i\) 之后, \(i\) 要插在哪里。首先一定是 \(i\) 尽可能需要放到前面的东西的字典序比它小的位置上,然后。然后考虑需要找到一段区间使得能插进去,就是这段区间的元素都 \([x-h,x+h]\)

这个用平衡树维护就行。

[USACO22JAN] Counting Haybales P

好玩。

首先,如果奇偶性相同,那就相对位置一定不变。

如果奇偶性不同,才需要考虑大小。

所以设 \(f_{i,j}\) 表示放了 \(i\) 个奇数,\(j\) 个偶数,对于每个数找到最近的不能交换的奇偶性不同的数,然后如果当前状态符合限制才进行转移。

[USACO21OPEN] Balanced Subsets P

这个说来说去,意思就是选出的东西是矩形扣掉四个角。

\(f_{i,l,r,0/1,0/1}\) 表示到第 \(i\) 行,从 \(l\)\(r\),当前矩形左侧正在增加或减少,右侧正在增加或减少的方案数。

直接转移是不行的,然后考虑把 \(l,r\) 看成二维的坐标,然后需要的时候就做二维前缀和。

[USACO21OPEN] United Cows of Farmer John P

弱化版就是 HH 的项链,

和那个题一样,枚举右端点,考虑什么样的左端点可行。

这个就是加了一个中间点可不可行。

然后考虑中间点会限制从自己到上一个的位置的所有元素的贡献。

所以线段树维护的是区间加减,单点加减,但是这两个是分开的,总的是相乘的关系。

注意一个点可能被贡献多次。

[USACO17DEC]A Pie for a Pie G

考虑对于 \(2n\) 个点,前 \(n\) 个代表甲的,后 \(n\) 个代表乙的。

从一个集合里的点向另外一个集合里的点连边,含义为如果我送出这个派,那么意味着我需要收到什么样的派。

最后由终止的派开始跑最短路,如果到一个点能跑到就说明这个点是可行的。

然后由于一个点开始要连好多点,所以排个序线段树优化建图。

[USACO21JAN] Paint by Letters P

就是平面图欧拉定理。

把所有相邻的相同的点链上边,然后算联通块。边数和点数好求,但是区域数不好求。

首先预处理我居然想了半天。其实画一下就能想明白的。

然后就是在每个区域上记一个 tag,求的时候直接求区域里面有多少个 tag,然后就是需要判边界上有多少个 tag 在区域里面的,如果在的话,就说明这个是无界域,需要减掉。

[USACO20JAN]Springboards G

我是垃圾。

我是垃圾。

我是垃圾。

我是垃圾。

就是排一维序,然后直接树状数组就行了。

后记

你急啥,你急也没用,你先别急让我先急。我喵喵喵去年联赛打了15分都没退役,你退什么退役。

喵。

喵。

红太阳是神。

喵。

陷入沉睡的牢笼,

梦醒以后喧闹依旧。

站在夜色上空,

像置身事外的钟。

转瞬停止,将信封握在手中,

未来某一天也许会有人能读懂。

月光消失了不见,

黑夜踏上了离别,

下一刻预言,光明会耀眼。

请让我留恋,

明天第一束光线

天亮之前,与你笑着再见。

posted @ 2022-11-15 23:08  cc0000  阅读(51)  评论(0)    收藏  举报