rt。
gen:https://www.luogu.com.cn/paste/brhlznm4
std:https://www.luogu.com.cn/paste/vmiyd9o5
欢迎大家捉虫。
这次主要围绕构造方式和读入量进行更新。
这一次我仍然选择了对每组数据精心设计构造参数。对于 1,2,3,4,5,6,7,9 数据的第一个点,都采用了阶梯构造(其中保证数量不超过 2×106):
1 1
2 1 2
3 1 2 3
4 1 2 3 4
5 1 2 3 4 5
...
而其余数据采用类似于哈夫曼树的构造形式:首先初始化 N 个长度为 1 的数组,分别填入 1 到 N,每一轮从中取出若干个长度最小的组,并合并成一个大组。将过程中所有的数组放在答案序列中就可以构造出一组强数据。而对于有解的处理,我们的做法是选择一组最长的数组并随机抠出一个数字,容易知道这一定是可行的。注意:你不应当使用以上信息特化你的代码。
所有的信息已经在 gen 中提供,其中 k 是每次选择的最大数组数量,dep 是最大合并层数。在下表中列出(其中 A 指代 1,2,3,4,5,6,7,9 数据点):
| k | dep | 使用于 |
|---|---|---|
| 2 | 2 | A#2,8#1 |
| 2 | 3 | A#3,8#2 |
| 2 | ⌈log2(n)⌉ | A#4,10#1,10#2,10#3,10#4,10#5 |
| n | 3 | A#5 |
| 3 | 2 | 8#3 |
| 3 | 3 | 8#4 |
| 10 | 2 | 8#5 |
其次是输入量问题。根据题目的定义:
令一组数据中 m=∑ki,则 ...,1≤m≤2×106。
再根据题目输入格式的定义:
第一行一个正整数 T 表示数据组数,对于每组数据: ...
可以知道 m 的范围是针对于 每组数据 而言的,而不是 一整个测试点。因此这道题目每个测试点的实际输入量级最大为 107。
在最后一个测试点中。每一组数据的 ∑ki 为 1768851±1,符合要求。同时,你可能需要注意读入带来的常数问题。