UOJ Logo Universal Online Judge

UOJ

#943. 【CTS2025】倾诉

附件下载 统计

“在我们倾诉的时候,烦恼衰减了。倾诉者的难过一半交给了对方,另一半随着声波还给了世界。烦恼就这样在人群里越传越弱,直到随风而逝。”

小 I 的小圈子里有 n 个人,第 i(1in) 个人初始有正整数 ai 的烦恼。

为了减轻大家的烦恼,小 I 组织了一次聊天活动,活动中 n 个人按照编号从小到大的顺序从左往右坐成一排。

时间有限,小 I 可以在活动中组织不超过 k 次倾诉。每次倾诉中,某个倾诉者 p(1pn1) 向右手边的人 p+1 倾诉,这首先导致 ap+1ap+1+12ap,然后 ap0,其中 表示赋值。小 I 可以任意选择每次倾诉的倾诉者。注意编号为 n 的人不会向其他人倾诉。

小 I 希望大家的烦恼尽可能少,于是他想知道:在活动过后,所有人最终烦恼的最大值最小是多少。

你需要输出答案的精确值。具体地,答案总能写成 S2n 的形式,其中 S 是一个不超过 2n×(maxi=1nai) 的正整数。你需要输出 S 的二进制表示。

输入格式

本题有多组测试数据。输入的第一行一个整数 T,表示测试数据组数,接下来依次描述每组测试数据。

每组测试数据的第一行两个整数 n,k,分别表示人数和倾诉次数上限;第二行 n 个正整数 a1,a2,,an 描述初始每个人的烦恼值。

输出格式

对于每组数据输出一行一个 01 字符串,从高位到低位描述 S 的二进制表示。你的输出不应该有前导零。

样例 #1

样例输入 #1

3
3 1
5 2 1
3 2
5 2 1
3 3
5 2 1

样例输出 #1

100100
10100
10100

【样例 1 解释】

对于第一组测试数据,最优策略为让第一个人倾诉。最终烦恼值为 (0,4.5,1),故输出 4.5×23=36 的二进制表示 100100

对于第二和第三组测试数据,最优策略为先让第二个人倾诉,再让第一个人倾诉。最终烦恼值为 (0,2.5,2),故输出 2.5×23=20 的二进制表示 10100

样例 #2

样例输入 #2

见题目目录下的 2.in 与 2.ans。

样例输出 #2

见题目目录下的 2.in 与 2.ans。

【样例 2 解释】

该组样例七个测试数据的答案分别为 10,10,8,5,3.5,2.75,2.5

数据范围

n 表示单个测试点中所有测试数据的 n 的和。对于所有测试数据,保证

  • 1T2×104
  • 1n,n2×1041k109
  • 1in,1ai106

时间限制:4s 8s

空间限制:512MB