你绝对不知道我打出了哪5题
赛时打出A+B+C+F+G???
A,B入门题,就不说了。
C题
一个队列,可以从对头和队尾取元素,或将取出的元素放回到对头或
对尾,总共能进行K次操作,问取出元素和的最大值
看起来没思路,对吧
但n<=50
会了吧
D题
给定一个序列,有k次操作次数,每次交换相邻两个数,问最长相同连
续子段。
也没啥思路,对吧
但n也<=50
E题
没调出来,过!
F题
比较唬人
实际上就是01背包
原本裸的是过不了的,但数据太水了
G题
比较有难度
给定一个n*n的矩阵,求每个子矩阵的颜色种类的平均值,n<=100
首先肯定不能枚举,枚举子矩阵就n^4了,肯定超
考虑单个处理,对于一个颜色,找到一种分法使包含这个颜色的子矩
阵不重不漏,把贡献全部加起来再除总可能数
如何找到不重不漏的方法?
先看一维
对于一个# % # # % # % #(#为空位)
对于每一个%,左端点到它前一个%的后一位,右端点直接到底
二维也差不多,左右上端点限制,下端点直接到底就行了
观察到同行的左右端点满足单调性,加个单调栈维护
复杂度n^3