#\(\color{red}{\mathcal{Description}}\)

LInk

这道题是个\(zz\)题

#\(\color{red}{\mathcal{Solution}}\)

我们考虑如何得部分分,即十分\(zz\)的\(\Theta((m+n)log(m+n))\),窝萌发现这个复杂度似乎可以接受,但是会爆是真的,所以每当这个时候我们就需要思考问题内部的单调性。我们发现其实对于两条蚯蚓\(A\)和\(B\),设它们的长度为\(L_A\)和\(L_B\),假设他们满足\(L_A < L_B\),那么他们都砍去\(p \times 100%\)后坑定会有\(L_{Br} > L_{Ar}\),\(L_{Bl} > L_{Al}\)……那么从技术层面来讲,他们都会加\(mq-q\)……所以最终来讲,当前大于之后也一定大于……所以用三个队列维护一下即可\(qwq\)

#include <queue>
#include <cstdio>
#include <iostream>
#include <algorithm>
#define MAXN 1000100 using namespace std ;
queue<int> q, q1, q2 ; int cnt, L, R ;
int now, H1, H2, H3 ; double U, V, P ;
int mark = 0, A[MAXN], N, M, H, T, i, Ans[MAXN << 3] ; inline int qr(){
int k = 0 ; char c = getchar() ;
while (c < '0' || c > '9') c = getchar() ;
while (c <= '9' && c >= '0') k = (k << 1) + (k << 3) + c - 48, c = getchar() ;
return k ;
}
inline bool cmp(int J, int L){return J > L ;}
int main(){
cin >> N >> M >> H >> U >> V >> T ;
for (i = 1; i <= N; ++ i) A[i] = qr() ;
sort(A + 1, A + N + 1, cmp) ;
for (i = 1; i <= N; i ++) q.push(A[i]) ;
for (i = 1; i <= M; ++ i){
H1 = q.empty() ? -0x7fffffff : q.front(),
H2 = q1.empty() ? -0x7fffffff : q1.front(),
H3 = q2.empty() ? -0x7fffffff : q2.front() ;
if (H1 >= H2 && H1 >= H3) q.pop(), now = H1 ;
else if (H2 >= H1 && H2 >= H3) q1.pop(), now = H2 ;
else if (H3 >= H1 && H3 >= H2) q2.pop(), now = H3 ;
now += mark, mark += H ;
L = (double)now * U / V , R = now - L, L -= mark, R -= mark ;
q1.push(L), q2.push(R) ;
if (i % T == 0) printf("%d ", now) ;
}
putchar('\n') ;
while(!q.empty() || !q2.empty() || !q1.empty()){
H1 = q.empty() ? -0x7fffffff : q.front(),
H2 = q1.empty() ? -0x7fffffff : q1.front(),
H3 = q2.empty() ? -0x7fffffff : q2.front(), ++ cnt ;
if (H1 >= H2 && H1 >= H3) q.pop(), now = H1 ;
else if (H2 >= H1 && H2 >= H3) q1.pop(), now = H2 ;
else if (H3 >= H1 && H3 >= H2) q2.pop(), now = H3 ;
if (cnt % T == 0) printf("%d ", now + mark) ;
}
return 0 ;
}

[NOIp2016]蚯蚓 (队列)的更多相关文章

  1. [Noip2016]蚯蚓 D2 T2 队列

    [Noip2016]蚯蚓 D2 T2 Description 本题中,我们将用符号[c]表示对c向下取整,例如:[3.0」= [3.1」=[3.9」=3.蛐蛐国最近蚯蚓成灾了!隔壁跳 蚤国的跳蚤也拿蚯 ...

  2. 【BZOJ】4721: [Noip2016]蚯蚓 / 【洛谷】P2827 蚯蚓(单调队列)

    Description 本题中,我们将用符号[c]表示对c向下取整,例如:[3.0」= [3.1」=[3.9」=3.蛐蛐国最近蚯蚓成灾了!隔壁跳 蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮 ...

  3. NC16430 [NOIP2016]蚯蚓

    NC16430 [NOIP2016]蚯蚓 题目 题目描述 本题中,我们将用符号 \(\lfloor c \rfloor\) 表示对 c 向下取整,例如:\(\lfloor 3.0 \rfloor = ...

  4. [noip2016]蚯蚓<单调队列+模拟>

    题目链接:https://vijos.org/p/2007 题目链接:https://www.luogu.org/problem/show?pid=2827#sub 说实话当两个网站给出AC后,我很感 ...

  5. [Noip2016]蚯蚓 (单调队列)

    题干 本题中,我们将用符号[c]表示对c向下取整,例如:[3.0」= [3.1」=[3.9」=3.蛐蛐国最近蚯蚓成灾了!隔壁跳蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮他们消灭蚯蚓.蛐蛐国 ...

  6. 2018.09.11 bzoj47214721: [Noip2016]蚯蚓(单调队列)

    传送门 好题. 目测只会多带一个log2(n+m)" role="presentation" style="position: relative;"& ...

  7. 【bzoj4721】[Noip2016]蚯蚓

    题目描述 本题中,我们将用符号[c]表示对c向下取整,例如:[3.0」= [3.1」=[3.9」=3.蛐蛐国最近蚯蚓成灾了!隔壁跳蚤国的跳蚤也拿蚯蚓们没办法,蛐蛐国王只好去请神刀手来帮他们消灭蚯蚓.蛐 ...

  8. 【uoj264】 NOIP2016—蚯蚓

    http://uoj.ac/problem/264 (题目链接) 题意 n条蚯蚓,时间为m.每单位时间要可以将最长的蚯蚓切成len/2和len-len/2两份,长度为0的蚯蚓不会消失,因为每单位时间所 ...

  9. BZOJ4721 [Noip2016]蚯蚓

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...

随机推荐

  1. Https之SSL原理

    一.HTTPS和SSL HTTP(Hyper TEXT Transfer Protocol超文本传输协议)是目前互联网上应用最为广泛的一种网络协议,用于在Web浏览器和网站服务器之间传递信息,但是HT ...

  2. OpenGL学习—04--彩色立方体

        1.tutorial04.cpp // Include standard headers #include <stdio.h> #include <stdlib.h> ...

  3. 解决PJA错误

     现场有WAS5.6,均安装在AIX下,且都已经设置PJA,在WAS5上报表正常,但是在WAS6下报表会报错,两个应用下的配置均相同. 反馈的报错日志: [11-4-25 14:20:42:758 ...

  4. Android批量打包提速 - 1分钟900个市场不是梦

    版权声明: 欢迎转载,但请保留文章原始出处 作者:GavinCT 出处:http://www.cnblogs.com/ct2011/p/4152323.html 黎明前的黑暗 使用Ant或者Gradl ...

  5. 百度网盘下载器 PanDownload v2.0

    PanDownload是一款坚持以用户体验为中心,畅快淋漓的下载为理念而打造的下载工具. 从2017年2月9日首个版本推出,时至今日已经一年七个月了,首先感谢大家一直以来的支持与建议,促使着我不断地对 ...

  6. redis HyperLogLog 基数估算

    HyperLogLog 可以接受多个元素的输入,返回输入元素的基数估算值基数,集合中不同元素的数量.如集合{1,2,3,1,2,3,4}的基数是4.估算,HyperLogLog算法返回的基数不是完全精 ...

  7. Claims-based认证解析

    Claims-based认证相关的两个重要的类ClaimsIdentity以及ClaimsPrincipal解析 ClaimsIdentity以及ClaimsPrincipal是.NET下Claims ...

  8. 浅谈 java 反射机制

    一:Java反射概念 Java反射是Java被视为动态(或准动态)语言的一个关键性质.这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其mod ...

  9. windows下建立netcore控制台程序,然后传送到centos7下的docker容器里运行

    1.首先,在window下用vs2017开发netcore控制台项目. 2.把建立好的项目传送到centos7下面的容器里. docker cp sharefoldersforwindows/ 359 ...

  10. apache软件no_ssl和openssl两种类型的区别

    apache软件同一版本有两种类型:no_ssl和openssl: openssl多了个ssl安全认证模式,它的协议是HTTPS而不是HTTP,这就是带有SSL的服务器与一般网页服务器的区别了. 一般 ...