#\(\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. Tips——canvas闪屏问题的处理

    一.问题描述 在画canvas时,遇到屏幕瞬间空白的情况(大约1~2帧),造成用户体验不好. 二.原因 canvas的绘图过程是:先擦出整个画布:然后浏览器到达重绘时间点后,在空白的canvas上作画 ...

  2. .NET4.5新特性async和await修饰符实现异步编程

    开篇 每一个版本的.net都会引入一些新的特性,这些特性方便开发人员能够快速实现一些功能.虽然.net版本一直在更新,但是新版本对旧版本的程序都是兼容的,在这一点上微软做的还是非常好的.每次学一个新内 ...

  3. p2p项目工具类

    1.用于存放当前用户的上下文UserContext package com.xmg.p2p.base.util; import javax.servlet.http.HttpSession; impo ...

  4. Batch Norm、Layer Norm、Weight Norm与SELU

    加速网络收敛——BN.LN.WN与selu 自Batch Norm出现之后,Layer Norm和Weight Norm作为Batch Norm的变体相继出现.最近又出来一个很”简单”的激活函数Sel ...

  5. Android 时间轴的实现

    时间轴 时间轴,顾名思义就是将发生的事件按照时间顺序罗列起来,给用户带来一种更加直观的体验.京东和淘宝的物流顺序就是一个时间轴(如图),想必大家都不陌生. 时间轴的初探 初次见到这种UI,感觉整个布局 ...

  6. JQuery 简单表格验证

    <form action="{% url 'register' %}" method="post"> 用户名:<input id=" ...

  7. node和iisnode express手工安装

    一.安装node.js的x86版本: 这样,node.js会安装在C:\Program Files (x86)\nodejs,这符合iisnode express7版本的期待. 二.安装iisnode ...

  8. 【Java】多线程

    class RunnableDemo implements Runnable { private Thread t; private String threadName; RunnableDemo( ...

  9. springboot 文件上传 java.io.IOException: The temporary upload location [/tmp/xx] is not valid

    转自:http://meia.fun/article/1541578061808 首先分析下出现问题的原因:linux 下的 /tmp 目录,是用来存储由各种程序创建的临时文件的地方.一些配置,导致系 ...

  10. Vue2学习笔记:v-on

    Vue的事件: v-on: click/mouseover/mouseover/mousedown/dbclick/... 下面是点击事件介绍: 1.点击事件 <!DOCTYPE html> ...