Loading

模拟61—「交通·小P的单调数列·矩阵·花瓶」

交通

考试的时候一直在想如何给大环计数,然后不会。
实际上可以转化题目,因为一个点有两条入边和两条出边,但是只能选择一条,所以给他们建一个边。
那么新的图也有 \(2n\) 个点(每条边看做一个点), \(2n\) 条边。
并且相邻的点不能选择,因为他们是同一个点的入边或者出边。
所以要在图上选择 \(n\) 个互不相邻的点。

每有一个环,就有两种方案,最后的答案就是 \(2^t\)\(t\) 是环的个数。

小P的单调数列

考试的时候推出来了正常的方程并写上了树状数组优化,但是没想到 \(j\leq 2\)

\(j\leq 2\) 证明就是多选一个数的平均值肯定不如 \(max\) 大。
所以要选择尽量少的段,如果单调递减的很大,那么就需要选择两段(第一段强制递增)。
否则直接选择一段最大的单调递增就行了。

矩阵

一道构造题,并没有足够的时间想。
首先需要有一个 \(n=2\) 的时候的方案,就是不断通过对角线让这一列相等,然后消掉一列。
同理可以解决 \(m=2\)

然后整张图只要把前两行,前两列干成 0 ,整张图就可以为 0 。
考虑一个如下图形。
image
这是一个 3*3的正方形,无论你是用设么操作,他都能抵消掉,所以这6个数的和永远不变。

所以可以根据这个把整个矩形弄成0 。
所以只要用上述 \(n,m=2\) 的操作弄好就行了。

花瓶

显然的 \(dp\) 和斜率优化,但是留给这道题的时间不够,没发现一个地方正负号反了。
首先 \(a_i >0\) 的时候 \(x\) 单减,\(k\) 单增,可以直接反过来做,每个 \(j\) 开一个单调队列。

\(a_i\) 不是正数的时候,因为这道题是两维的斜率优化,并且在第一维有显然的转移顺序,所以可以先排序,再操作。

先让 \(x\) 有序,插入到单调队列里面,再让 \(k\) 有序,单调队列统计答案。
这样每次排序,复杂度是 \(n^2logn\) 的。

可以发现顺序其实是不变的,所以直接再外面先排好序就行了。

总结

T1,T2做了很长时间,但是没有想出来。
并且 T1 ,T4 打的暴力还挂了。
(T1我复杂度是 \(20^{10}\)
本来堆满暴力可以有 30+60+40(我只想了20)+70 ,但是我只拿了60。
因为是暴力,所以没有太注意(事实证明即使我打正解很小心也有大概率挂,暴力不注意就挂残了)
然后又垫底了一场。

T4斜率优化的式子都推出来了,但是错一个正负号一直没发现,最后调试也是一直在乱改而没有想想自己式子错了。
T2有点大意,一直在想如何改变dp定义减少状态,没想推性质减少枚举。
其实知道自己会 TLE 给第二维卡个上界也是不错的选择。

posted @ 2021-09-25 18:01  Soresen  阅读(56)  评论(0)    收藏  举报