Codeforces Round #953 (Div.2)
Codeforces Round #953 (Div.2)
# | Who | = | * | A 500 | B 750 | C 1250 | D 1500 | E 2000 | F 2500 | Π | Δ Final | ⮭ |
---|---|---|---|---|---|---|---|---|---|---|---|---|
774 | Iingfunny | 3668 | 492 00:04 |
729 00:07 |
1145 00:21 |
1302 00:33 |
1929 | +427 | N/C |
记号约定:。
1978A Submission
观察性质题,注意到最后一个必选,前面的任意选。
时间复杂度 。
1978B Submission
直接构造题,对于第二种卖法在 的时候都是第二种更优。
时间复杂度 。
1978C Submission
考察对排列的理解。首先是距离最大的时候应该是 的数在左半部分, 的数在右半部分。判定问题通过对称性可知道限制条件为偶数,于是令 。
接下来考虑构造,最朴素的是只考虑交换 和 ,贡献为 于是变成用所有奇数或者所有偶数构造出 。
可以发现这个在偶数的时候大概率构造不出来 ,考虑添加一些别的交换,但是一个交换必须在有特殊限制的条件下才比较好考虑其贡献,比如完全有序的情况下,交换 产生 的贡献。
考虑在之前的基础上构造,对于某次 和 ,如果此时产生的贡献大于 ,就交换 ,于是得到正解。
时间复杂度 。
1978D Submission
分类讨论题。从简单的情况开始考虑:只有一号,此时分类讨论两种 和 。
类似的,考虑 号,此时 ,分别判断大于小于和等于。
时间复杂度 。
1978E Submission
看起来不像是特殊数据结构题,并且只有查询。
先手玩一下小情况,不难感觉到修改是有限的,而且可以只先做操作 1,最后再做操作 2。
通过有限这一性质,不难想到莫队。其次,左右端点向内缩的时候有点难想,考虑使用回滚莫队,但是要注意:
- 做操作 2 的时候,不能直接修改 数组导致操作 1 误判,只能打标记。
随后阅读了一下官方题解:考虑到查询整个串和查询某个区间的差别只在于边界的两个字符,尝试硬讨论这边界的两个字符即可。提交记录是官方做法,但是多判断了几个字符。
时间复杂度 。
1978F Submission
首先通过性质简化题意,由 注意到,和主对角线平行的线上的点都是联通的( 除外,但是 不可能和其他形成连通块,于是可以直接不讨论了)。
于是你把主对角线拉出来,得到一个序列 。于是问题简化为在序列上的两个点连边,问最后有几个连通块。而连边的限制是:
遇到 问题不妨从素数幂考虑,这里只需要考虑素数。对于某个素数 ,我们可以找到有哪些数字含有这个质因子,于是你得到了一些不(一定)连续的位置,要在它们距离 的点之间连一条边。不过这题是求连通块数量,于是图可以拉成一棵从左到右的、线性的树,只在相邻两个点距离 时连接。
再次利用这个性质,不用显式建图,只需要用并查集维护连通性即可。
至于找出有哪些位置含有质因子 ,可以埃氏筛预处理出每个正整数的质因子,时间复杂度 。然后在序列中直接遍历质因子即可,时间复杂度 。
总时间复杂度 ,其实还有个反阿克曼函数,此处当作常数。
本文来自博客园,作者:lingfunny,转载请注明原文链接:https://www.cnblogs.com/lingfunny/p/18259758
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】