传送门

A:

一个组 \(2^n+2^1+\dots+2^{\frac{n}{2}-1}\),另一个组剩下的。

B:

考虑不停循环。

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

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

C:

先把字符们排序。

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

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

  2. 否则:

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

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

D:

形式化题意:

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

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

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

E:

我们可以先令所有 \(a_i=a_i-i\),这样就把上升变成了非降。

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

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

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

假设我们现在处理 \((l,r)\)。(也就是 \(l,r\) 这俩被锁定了,我们可以让 \(b_0=0,b_{k+1}=n+1\))

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

LIS 要优化。

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

随机推荐

  1. C# 排序算法2:选择排序

    选择排序法 ,是在要排序的一组数中,选出最小(或最大)的一个数与第一个位置的数交换:在剩下的数当中找最小的与第二个位置的数交换,即顺序放在已排好序的数列的最后,如此循环,直到全部数据元素排完为止. 原 ...

  2. C++ 覆盖写文件

    写文件有三种模式: 截断写,文件打开之后立即清空原有内容 附加写,文件打开之后不清空原有内容,每次只能在文件最后写入 覆盖写,文件打开之后不清空原有内容,可以在文件任意位置写入 例如:文件原有内容为 ...

  3. DFT Architecture

    Design For Test 在实际生产过程中产生的physical defect是导致芯片功能出错的根本原因 如何根据结构产生测试向量呢?主要考虑physical defect physical ...

  4. VSCODE配置tasks.json

    1.新建配置任务tasks.json 选择gcc.exe 可以在其中按需修改 { "version": "2.0.0", "tasks": ...

  5. 【MicroPython】生成模块表py\objmodule.c中结构mp_rom_map_elem_t - py\makemoduledefs.py

    查找文件中的模块注册标记MP_REGISTER_MODULE pattern = re.compile(r"[\n;]\s*MP_REGISTER_MODULE\((.*?),\s*(.*? ...

  6. 【C++】const 常类型

    常引用 格式:const 类型说明符 &引用名 注意:常引用所引用的对象不能修改 常对象 格式:类名 const 对象名 或 const 类名 对象名 注意:常对象其数据成员在生存期内不能修改 ...

  7. 这一次,弄明白JS中的文件相关(二):HTTP请求头和响应头

    (一)前置知识 开始前,我们先来复习一下HTTP的基础知识. HTTP请求分为:请求行.请求头.空行.请求体(也叫正文.请求实体.请求主体). HTTP响应分为:状态行(也叫响应行).响应头.空行.响 ...

  8. Redis监控方法之二

    Redis监控方法之二 背景 前期整理过使用 exporter + prometheus 方式进行Redis监控的搭建过程 最近给同事研究clickhouse时发现 clickhouse 有对应的pl ...

  9. [转帖]Linux文件权限除了r、w、x外还有s、t、i、a权限

    https://www.cnblogs.com/hiyang/p/15122714.html setuid 是 set user ID upon execution 再次缩写为suid setgid  ...

  10. [转帖]016 Linux 卧槽,看懂进程信息也不难嘛?top、ps

    016 Linux 卧槽,看懂进程信息也不难嘛?top.pshttps://my.oschina.net/u/3113381/blog/5455267 1 扒开看看 top 命令参数详情 Linux ...