CF1348

传送门

A:

一个组 2n+21++2n21,另一个组剩下的。

B:

考虑不停循环。

如果不同的数字超过 k,无解。

否则先把原序列去重,然后把末尾补一些数补成 k 个,再把这个新序列循环 n 次。

C:

先把字符们排序。

肯定先把最小的 k 个字符作为各自的开头。

  1. 如果前 k 个就有不同的字符,那么以第 k 个字符开头的一定是字典序最大的。(因为字符排序了)直接把之后的字符全部丢到其他地方去,答案就是第 k 个字符。

  2. 否则:

    1. 如果这之后的字符都相等,除以一下再加个余数;

    2. 否则第 n 个字符肯定比前面的大,我们要让这个字符尽可能往后拖,那么我们把 k+1n 的字符全部堆到一个字符串上即可。

D:

形式化题意:

初始有 sum=1,x=1,每次可以让 x=[x,x2] 内的一个数,然后让 sum+=x,最小化操作次数使得 sum=kk 给定。

最小化,肯定想着不停乘二乘二。但是可能最后一次时 x 太大了。

但是没关系,我们可以把最后剩下的一点提到之前加上。

E:

我们可以先令所有 ai=aii,这样就把上升变成了非降。

这么做的原因是我们不用判断两个锁定的数之间的距离:比如 47 中间隔了三个数,但是要求严格上升,那就不行了。

现在把 ai 重新赋值之后,只要两个锁定的不是后面的比前面的小就行。

我们把两个锁定的之间的段抽出来处理。

假设我们现在处理 (l,r)。(也就是 l,r 这俩被锁定了,我们可以让 b0=0,bk+1=n+1

这个段内的所有不在 [a[l],a[r]] 内的数,肯定都要改。剩下在 [a[l],a[r]] 的数内,找出一个最长不降子序列不改,再剩下的改。

LIS 要优化。

注意:不可能成功说明有俩被锁定的本身就不满足非降。

posted @   FLY_lai  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示