【杂题乱写】Codeforces Round#904
按理来说最近开始了一天一套 div2 计划,第一天做了一套 Div1,第二天做了 hustfc,第三天因为要赶 latex 期末考试,所以什么也没做。
明天写一下 hustfc 比较牛的几题。
A
暴力怎么做,是不是加加加,然后判断。
B
本质上是让长度为 的后缀全是 那么找到最短的有 个 的后缀求一下逆序对就行了。
C
注意到 选 或者 最好使,暴力找到 即可。
差分哦
D
对 计算是不是在 中存在 的因子。再通过差分计算有多少对子的 是 不能输入一个 标记一下哦!
E
策略大概就是笛卡尔树上 父亲权值减去儿子权值 × 儿子控制区间长度。换一个想法,如果出现了 且 则需要进行 次操作。
所有操作其实和 没什么关系,主要是 的数值。看到 shift,自然想到了复制一倍接到原序列的后面。考虑一个 的操作区间。
-
如果 shift 之后不会破坏 区间的完整性,或者说 shift 的次数不超过 而且不小于 ,那么对操作代价的贡献是一定的,可以差分进行区间加。
-
否则破坏了区间的结构。假设 shift 之后剩下了 在序列开头。这时候可能出现 而导致可能 无法通过这轮操作把所有元素变成一样的。但是不难发现可以这个问题通过操作 来实现,所以进行 次操作即可。
不难发现此时操作区间长度和 shift 的次数有关,而且是一个二次函数。而对于所有产生间断的情况的贡献全都是二次函数,同一个操作对这些 shift 的二次函数的系数的贡献是一样的,可以进行差分处理。
好久没见到这样的题啦。好有意思。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律