A. [NOIP 2016 提高组] 蚯蚓

    Type: RemoteJudge 1000ms 512MiB

[NOIP 2016 提高组] 蚯蚓

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目背景

NOIP2016 提高组 D2T2

题目描述

本题中,我们将用符号 c\lfloor c \rfloor 表示对 cc 向下取整,例如:$\lfloor 3.0 \rfloor = \lfloor 3.1 \rfloor = \lfloor 3.9 \rfloor = 3$。

蛐蛐国最近蚯蚓成灾了!隔壁跳蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮他们消灭蚯蚓。

蛐蛐国里现在共有 nn 只蚯蚓(nn 为正整数)。每只蚯蚓拥有长度,我们设第 ii 只蚯蚓的长度为 ai(i=1,2,,n)a_i\,(i=1,2,\dots,n),并保证所有的长度都是非负整数(即:可能存在长度为 00 的蚯蚓)。

每一秒,神刀手会在所有的蚯蚓中,准确地找到最长的那一只(如有多个则任选一个)将其切成两半。神刀手切开蚯蚓的位置由常数 pp(是满足 0<p<10 < p < 1 的有理数)决定,设这只蚯蚓长度为 xx,神刀手会将其切成两只长度分别为 px\lfloor px \rfloorxpxx - \lfloor px \rfloor 的蚯蚓。特殊地,如果这两个数的其中一个等于 00,则这个长度为 00 的蚯蚓也会被保留。此外,除了刚刚产生的两只新蚯蚓,其余蚯蚓的长度都会增加 qq(是一个非负整常数)。

蛐蛐国王知道这样不是长久之计,因为蚯蚓不仅会越来越多,还会越来越长。蛐蛐国王决定求助于一位有着洪荒之力的神秘人物,但是救兵还需要 mm 秒才能到来……(mm 为非负整数)

蛐蛐国王希望知道这 mm 秒内的战况。具体来说,他希望知道:

  • mm 秒内,每一秒被切断的蚯蚓被切断前的长度(有 mm 个数);
  • mm 秒后,所有蚯蚓的长度(有 n+mn + m 个数)。

蛐蛐国王当然知道怎么做啦!但是他想考考你……

输入格式

第一行包含六个整数 n,m,q,u,v,tn,m,q,u,v,t,其中:n,m,qn,m,q 的意义见【问题描述】;u,v,tu,v,t 均为正整数;你需要自己计算 p=u/vp=u / v(保证 0<u<v0 < u < v);tt 是输出参数,其含义将会在【输出格式】中解释。

第二行包含 nn 个非负整数,为 a1,a2,,ana_1, a_2, \dots, a_n,即初始时 nn 只蚯蚓的长度。

同一行中相邻的两个数之间,恰好用一个空格隔开。

保证 1n1051 \leq n \leq 10^50m7×1060 \leq m \leq 7 \times 10^60<u<v1090 < u < v \leq 10^90q2000 \leq q \leq 2001t711 \leq t \leq 710ai1080 \leq a_i \leq 10^8

输出格式

第一行输出 mt\left \lfloor \frac{m}{t} \right \rfloor 个整数,按时间顺序,依次输出第 tt 秒,第 2t2t 秒,第 3t3t 秒,……被切断蚯蚓(在被切断前)的长度。

第二行输出 n+mt\left \lfloor \frac{n+m}{t} \right \rfloor 个整数,输出 mm 秒后蚯蚓的长度;需要按从大到小的顺序,依次输出排名第 tt,第 2t2t,第 3t3t,……的长度。

同一行中相邻的两个数之间,恰好用一个空格隔开。即使某一行没有任何数需要输出,你也应输出一个空行。

请阅读样例来更好地理解这个格式。

3 7 1 1 3 1
3 3 2
3 4 4 4 5 5 6
6 6 6 5 5 4 4 3 2 2
3 7 1 1 3 2
3 3 2
4 4 5
6 5 4 3 2
3 7 1 1 3 9
3 3 2
//空行
2

提示

样例解释 1

在神刀手到来前:33 只蚯蚓的长度为 3,3,23,3,2

11 秒后:一只长度为 33 的蚯蚓被切成了两只长度分别为1122 的蚯蚓,其余蚯蚓的长度增加了 11。最终 44 只蚯蚓的长度分别为 (1,2),4,3(1,2),4,3。括号表示这个位置刚刚有一只蚯蚓被切断。

22 秒后:一只长度为 44 的蚯蚓被切成了 113355 只蚯蚓的长度分别为:2,3,(1,3),42,3,(1,3),4

33 秒后:一只长度为 44 的蚯蚓被切断。66 只蚯蚓的长度分别为:3,4,2,4,(1,3)3,4,2,4,(1,3)

44 秒后:一只长度为 44 的蚯蚓被切断。77 只蚯蚓的长度分别为:4,(1,3),3,5,2,44,(1,3),3,5,2,4

55 秒后:一只长度为 55 的蚯蚓被切断。88 只蚯蚓的长度分别为:5,2,4,4,(1,4),3,55,2,4,4,(1,4),3,5

66 秒后:一只长度为 55 的蚯蚓被切断。99 只蚯蚓的长度分别为:(1,4),3,5,5,2,5,4,6(1,4),3,5,5,2,5,4,6

77 秒后:一只长度为 66 的蚯蚓被切断。1010 只蚯蚓的长度分别为:2,5,4,6,6,3,6,5,(2,4)2,5,4,6,6,3,6,5,(2,4)。所以,77 秒内被切断的蚯蚓的长度依次为 3,4,4,4,5,5,63,4,4,4,5,5,677 秒后,所有蚯蚓长度从大到小排序为 6,6,6,5,5,4,4,3,2,26,6,6,5,5,4,4,3,2,2

样例解释 2

这个数据中只有 t=2t=2 与上个数据不同。只需在每行都改为每两个数输出一个数即可。

虽然第一行最后有一个 66 没有被输出,但是第二行仍然要重新从第二个数再开始输出。

样例解释 3

这个数据中只有 t=9t=9 与上个数据不同。

注意第一行没有数要输出,但也要输出一个空行。

数据范围

【蒙青创】2025年CSP-J/S 冲刺【图论冲刺S300+】

Not Claimed
Status
Done
Problem
49
Open Since
2025-9-25 0:00
Deadline
2025-11-30 23:59
Extension
24 hour(s)