9.2

找补,然后全是贪心

Linguistics

简单说一下这个贪心模拟:
显然,这里要考虑的就是\(AB\)\(BA\)的放置.
发现对于\(AA\)\(BB\)我们无能为力.所以我们考虑以这个为分界线来分段处理
这里分类讨论一下:

奇数长度对两种的作用是一样的,都要加上一个零碎字母.
对于偶数长度,可以用一种正好填补满.
如果发现不够,那么只能换成另外一种,并且画一个分段的代价.

对着模拟,最后判断是否所需长度匹配就行.
听着就挺抽象的,具体还是看代码吧.

LIS or Reverse LIS?

这个题目的贪心就稍微明显一些.
其实应该说是构造?
只需要做一个"最大盆地"就好了.
这个我们直接统计出现一次的树和出现两次及以上的数,一次的分开放两边,多次的两边都出现就行了.

Traps

被自己毙掉的贪心原来是对的.
对每个位置处理出来一种价值.
其为 \(a[i]-(n-i)\) .
依照这个排序然后对前\(k\)个打上跳过的标记,最后模拟出答案.
为什么是对的呢?
给出一种自己的可能不够严谨的证明.
我们考虑第二个对第一个的影响:

1.第二个的位置在第一个以后,那么他的跳跃使第一个更优秀了,所以说顺序不变.
2.第二个的位置在第一个的前面,那么他的选择不对第一个有影响,所以说还是要选择第一个.

大概没什么问题?

后面的题就作罢吧.
posted @ 2023-09-03 22:11  ussumer  阅读(33)  评论(0)    收藏  举报