ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

7月杂题选做

2022-07-08 19:00:25  阅读:179  来源: 互联网

标签:10 le color times code 杂题 bigstar


上回说到: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。

code


CF1687C *2500 \(\color{green}\bigstar\)

有两个序列 \(a,b\),有 \(m\) 个区间,每次操作选择一个区间,需要满足这个区间 \(a\) 的和等于 \(b\) 的和,然后可以任意修改这个区间中的数,但需要保证操作后和依然相等,问是否可以操作若干次使得 \(a=b\)。

\(n\le 2\times 10^5\)

显然前缀和一下,然后相当于两个相等的且连边的点就可以把中间的全部联通。

考虑维护这个东西,我是直接写了一个 set,然后跑搜索,当然也可以用并查集维护。

code


打了 CF1700,非常罕见,id

秒了 D,回头过了 C,此时 psz 居然还没有过 AB??然后去 E,发现一眼秒了,但是去吃饭了,回来的时候 psz 已经过了E。最后 rk 4。


CF1700E *2600 \(\color{green}\bigstar\)

题目比较长,自己看吧。

很直接来的题,\(0\) 很好判,相当于只需要考虑交换一次是否可行即可。

考虑一个位置如果不合法,那么就是这个位置小于旁边四个数并且不是 \(1\)。

考虑修改这旁边的 \(5\) 个数字可能会产生影响。

那么开桶记录每个位置最多会给多少个不合法的点产生影响。

然后直接暴力扫,判断是 \(O(1)\) 的。

code


CF1700F *2600 \(\color{Gold}\bigstar\)

有一个大小威 \(2\times n\) 的 \(01\) 矩阵,给一个初始状态和目标状态,可义把 \(1\) 进行匹配,匹配代价是两点曼哈顿距离,求最小代价。

\(n\le 2\times 10^5\)。

想了半天 dp,结果是直接贪。

从左往右,然后记录上面和下面剩多少个 \(1\),上下不平衡就调整,然后一直向后移动就好了。

code


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 一下,然后用李超树动态维护即可。

code


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}\) 来更新。

code


标签:10,le,color,times,code,杂题,bigstar
来源: https://www.cnblogs.com/houzhiyuan/p/16459397.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有