7月杂题选做
作者:互联网
上回说到:2022.6
关于难度
\(\color{gray}\bigstar\) 可以秒杀的题。
\(\color{green}\bigstar\) 思考一会儿后可以秒的题。
\(\color{blue}\bigstar\) 需要较长时间思考的题。
\(\color{Gold}\bigstar\) 看题解、稍加指点就会做的题。
\(\color{red}\bigstar\) 看题解后需要较长时间消化,甚至现在都没有完全理解的题。
打了 ABC258 阴间场,EF 都是超级阿拉丁题,G和 Ex 是思博题。
开局写 E,直接WA 一发,然后秒了 G,回去 E 把 E 过了,然后冲 F 调了很久过了,此时已经过了一个小时了。
发现 Ex 是直接来,\(100\) 分钟的时候过了。
接下来写 ABCD,D写完最后一秒交了,结果 WA 了,后来调一下才发现 Inf 开了 \(10^{18}\) WA,开 \(9\times 10^{18}\) 过了。。我只能流汗。
ABC258Ex *2708 \(\color{green}\bigstar\)
求有多少个序列 \(a\),满足每个元素都是奇数,和为 \(S\),且不存在一个前缀和 \(\in A\)。
\(|A|\le 10^5,A_i\le 10^{18}\)。
考虑每次要么是把结尾数+1,要么是新开一个 \(1\),照这个思路做,设 \(f_{i,0/1}\) 表示当前和为 \(i\),最后一个数是否是奇数,那么转移显然可以矩阵快速幂。
要扣掉的点相当于后面次操作必然把结尾数+1。
CF1687C *2500 \(\color{green}\bigstar\)
有两个序列 \(a,b\),有 \(m\) 个区间,每次操作选择一个区间,需要满足这个区间 \(a\) 的和等于 \(b\) 的和,然后可以任意修改这个区间中的数,但需要保证操作后和依然相等,问是否可以操作若干次使得 \(a=b\)。
\(n\le 2\times 10^5\)
显然前缀和一下,然后相当于两个相等的且连边的点就可以把中间的全部联通。
考虑维护这个东西,我是直接写了一个 set,然后跑搜索,当然也可以用并查集维护。
打了 CF1700,非常罕见,id
秒了 D,回头过了 C,此时 psz 居然还没有过 AB??然后去 E,发现一眼秒了,但是去吃饭了,回来的时候 psz 已经过了E。最后 rk 4。
CF1700E *2600 \(\color{green}\bigstar\)
题目比较长,自己看吧。
很直接来的题,\(0\) 很好判,相当于只需要考虑交换一次是否可行即可。
考虑一个位置如果不合法,那么就是这个位置小于旁边四个数并且不是 \(1\)。
考虑修改这旁边的 \(5\) 个数字可能会产生影响。
那么开桶记录每个位置最多会给多少个不合法的点产生影响。
然后直接暴力扫,判断是 \(O(1)\) 的。
CF1700F *2600 \(\color{Gold}\bigstar\)
有一个大小威 \(2\times n\) 的 \(01\) 矩阵,给一个初始状态和目标状态,可义把 \(1\) 进行匹配,匹配代价是两点曼哈顿距离,求最小代价。
\(n\le 2\times 10^5\)。
想了半天 dp,结果是直接贪。
从左往右,然后记录上面和下面剩多少个 \(1\),上下不平衡就调整,然后一直向后移动就好了。
CF932F *2700 \(\color{blue}\bigstar\)
有一棵树,每个节点有权值 \(a,b\),从一个节点 \(x\) 每次可以调到一个子树中节点 \(y(x\ne y)\),获得价值是 \(a_x\times b_y\),一直跳到叶子,总价值是所有价值之和,对于每个点求出最大总价值。
\(n,a_i,b_i\le 10^5\)。
不错的题。
考虑设 \(f_i\) 表示 \(i\) 点的答案,那么可以得到转移方程:
\[f_x=\max_{y\in son_x} f_y+a_x\times b_y \]这种式子看着就很能斜率维护,由于是子树中维护,所以考虑 dsu on tree 一下,然后用李超树动态维护即可。
CF1699E *2600 \(\color{blue}\bigstar\)
已知 \(n\) 个数,值域是 \([1,m]\),每次操作选择一个数 \(x\),拆成两个数 \(p,q\) 满足 \(pq=x,p,q\ne 1\),求若干次操作以后的最小极差。
\(n\le 10^6,m\le 5\times 10^6\)。
不错的题。
考虑从大到小枚举最小值,问题相当于对每个数 \(a_i\) 拆成若干个 \(\ge x\) 的数然后需要满足最大值最小。
相当于每次加一个数然后去更新。
那么咋去更新呢,每次加入一个 \(y\),记录 \(mx_i\) 表示 \(i\) 拆成的最大值,那么对于所有 \(\ge y^2\) 的 \(i\),都可以把 \(i\) 拆成 \(y,\frac{i}{y}\) 来更新。
标签:10,le,color,times,code,杂题,bigstar 来源: https://www.cnblogs.com/houzhiyuan/p/16459397.html