NKOJ 4241 (NOIP 2016)蚯蚓(单调队列)

该博客介绍了如何利用单调队列解决NOIP2016竞赛中的蚯蚓问题,通过分析算法的时间复杂度和数据范围,提出了利用三个单调队列分别维护原有蚯蚓、切出的较长蚯蚓和较短蚯蚓的方法,以实现O(n)的解决方案。
摘要由CSDN通过智能技术生成

P4241【NOIP2016 DAY2】蚯蚓

问题描述

这里写图片描述

输入格式

第一行包含六个整数n,m,q,u,v,t,其中:n,m,q的意义见问题描述;

u,v,t均为正整数;你需要自己计算p=u/v(保证0 < u < v)t是输出参数,其含义将会在输出格式中解释。

第二行包含n个非负整数,为ai,a2,…,an,即初始时n只蚯蚓的长度。

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

输出格式

第一行输出⌊m/t⌋ 个整数,按时间顺序,依次输出第t秒,第2t秒,第3t秒……被切断蚯蚓(在被切断前)的长度。

第二行输出⌊(n+m)/t⌋个整数,输出m秒后蚯蚓的长度;需要按从大到小的顺序

依次输出排名第t,第2t,第3t……的长度。

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

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

样例输入 1

3 7 1 1 3 1
3 3 2

样例输出 1

3 4 4 4 5 5 6
6 6 6 5 5 4 4 3 2 2

样例输入 2

3 7 1 1 3 2
3 3 2

样例输出 2

4 4 5
6 5 4 3 2

样例输入 3

3 7 1 1 3 9
3 3 2

样例输出 3

2

提示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值