【题目链接】Universal Online Judge

【题解】本题最大的特点在于从大到小切以及切分规则一致,都是切成px和x-px。

由这两个特点很容易得到结论,后切的蚯蚓得到的px一定比先切的蚯蚓得到的px小,后切的蚯蚓得到的x-px一定比先切的蚯蚓得到的x-px小。

所以可以得到三队列做法,将原蚯蚓排序后放入A队列,将每次切分后的px放入B队尾,x-px放入C队尾。每次从ABC三队头取较大者弹出并切分,将切分后的蚯蚓放入BC队尾,整体+q转化为单点-q即可。

注意:UOJ extra test卡精度,可以将u/v直接带入主过程,就不用计算p了。

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#include<cctype>
using namespace std;
const int maxn=; int read(){
char c;int s=,t=;
while(!isdigit(c=getchar()))if(c=='-')t=-;
do{s=s*+c-'';}while(isdigit(c=getchar()));
return s*t;
}
queue<int>A,B,C;
int n,m,q,u,v,t,a[maxn];
int main(){
n=read();m=read();q=read();u=read();v=read();t=read();
for(int i=;i<=n;i++)a[i]=read();
sort(a+,a+n+);
for(int i=n;i>=;i--)A.push(a[i]);
for(int i=;i<=m;i++){
if(!A.empty()&&(A.front()>=B.front()||B.empty())&&(A.front()>=C.front()||C.empty())){
int x=A.front()+(i-)*q;A.pop();if(i%t==)printf("%d ",x);
B.push((int)(1ll*x*u/v)-i*q);C.push(x-(int)(1ll*x*u/v)-i*q);
}
else if(!B.empty()&&(B.front()>=C.front()||C.empty())){
int x=B.front()+(i-)*q;B.pop();if(i%t==)printf("%d ",x);
B.push((int)(1ll*x*u/v)-i*q);C.push(x-(int)(1ll*x*u/v)-i*q);
}
else{
int x=C.front()+(i-)*q;C.pop();if(i%t==)printf("%d ",x);
B.push((int)(1ll*x*u/v)-i*q);C.push(x-(int)(1ll*x*u/v)-i*q);
}
}
printf("\n");
for(int i=;i<=n+m;i++){
if(!A.empty()&&(A.front()>=B.front()||B.empty())&&(A.front()>=C.front()||C.empty())){
int x=A.front()+m*q;A.pop();if(i%t==)printf("%d ",x);
}
else if(!B.empty()&&(B.front()>=C.front()||C.empty())){
int x=B.front()+m*q;B.pop();if(i%t==)printf("%d ",x);
}
else{
int x=C.front()+m*q;C.pop();if(i%t==)printf("%d ",x);
}
}
printf("\n");
return ;
}

【NOIP】提高组2016 蚯蚓的更多相关文章

  1. 题解——洛谷P2827 NOIP提高组 2016 蚯蚓

    队列模拟 详细题解待填坑 #include <cstdio> #include <algorithm> #include <queue> #include < ...

  2. NOIP提高组2016总结

    前言 大翻车! 300--: day1 8:30~9:00, 照常看题,思考. 9:00~9:15, 搞定第一题,很水. 9:15~9:45, 思考第二题,我考虑用分深度来处理,想出个个玄学暴力,但刚 ...

  3. NOIP提高组2016 D1T2 【天天爱跑步】

    码了一个下午加一个晚上吧...... 题目描述: 小c同学认为跑步非常有趣,于是决定制作一款叫做<天天爱跑步>的游戏.<天天爱跑步>是一个养成类游戏,需要玩家每天按时上线,完成 ...

  4. NOIP提高组2016 D2T3 【愤怒的小鸟】

    貌似还没有写过状压DP的题目,嗯,刚好今天考了,就拿出来写一写吧. 题目大意: 额,比较懒,这次就不写了... 思路分析: 先教大家一种判断题目是不是状压DP的方法吧. 很简单,那就是--看数据范围! ...

  5. NOIP提高组初赛难题总结

    NOIP提高组初赛难题总结 注:笔者开始写本文章时noip初赛新题型还未公布,故会含有一些比较老的内容,敬请谅解. 约定: 若无特殊说明,本文中未知数均为整数 [表达式] 表示:在表达式成立时它的值为 ...

  6. NOIP提高组2004 合并果子题解

    NOIP提高组2004 合并果子题解 描述:在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆. 每一次合并,多多可以把两堆果子合并到一起,消 ...

  7. 计蒜客 NOIP 提高组模拟竞赛第一试 补记

    计蒜客 NOIP 提高组模拟竞赛第一试 补记 A. 广场车神 题目大意: 一个\(n\times m(n,m\le2000)\)的网格,初始时位于左下角的\((1,1)\)处,终点在右上角的\((n, ...

  8. 1043 方格取数 2000 noip 提高组

    1043 方格取数  2000 noip 提高组 题目描述 Description 设有N*N的方格图(N<=10,我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0.如下图所示(见样 ...

  9. [NOIP提高组2018]货币系统

    [TOC] 题目名称:货币系统 来源:2018年NOIP提高组 链接 博客链接 CSDN 洛谷博客 洛谷题解 题目链接 LibreOJ(2951) 洛谷(P5020) 大视野在线评测(1425) 题目 ...

随机推荐

  1. WebKit 源码分析 -- loader

    原文地址: http://peirenlei.iteye.com/blog/1718569 摘要:本文介绍 WebCore 中 Loader 模块是如何加载资源的,分主资源和派生资源分析 loader ...

  2. matlab中的静态变量

    persistent X Y Z 将X,Y,Z定义为在其声明处的函数的局部变量.然而,这些变量的值在函数调用期间在内存中保存(应该是堆区).Persistent 变量和global(全局)变量相似,因 ...

  3. arp_filter/arp_ignore/rp_filter

    下面这段代码应该是arp_ignore/arp_filter的最好的注脚;在ARP_ignore通过的情况下,我再去判断ARP_filter,这个ARP_filter其实就是为了判断,当数据包再出去的 ...

  4. matlab中nargin函数的用法

    nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能. 通常可以用他来设定一些默认值,如下面的函数. 例子,函数test1的功能是输出a和b的和.如果只输入一个变量,则认为 ...

  5. 前端基础:JavaScript BOM对象

    JavaScript BOM对象 JavaScript Window - 浏览器对象模型 浏览器对象模型(BOM)使JavaScript有能力与浏览器"对话". 浏览器对象模型(B ...

  6. Java入门之:基本数据类型

    Java基本数据类型 变量就是申请内存来存储值,也就是说,当创建变量的时候,需要在内存中申请空间.内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来存储该类型的数据,如下图所示: 因此, ...

  7. BZOJ4737 组合数问题(卢卡斯定理+数位dp)

    不妨不管j<=i的限制.由卢卡斯定理,C(i,j) mod k=0相当于k进制下存在某位上j大于i.容易想到数位dp,即设f[x][0/1][0/1][0/1]为到第x位时是否有某位上j> ...

  8. BZOJ4897 THUSC2016成绩单(区间dp)

    拿走一个区间的代价只与最大最小值有关,并且如果最后一次拿走包含区间右端点的子序列一定不会使答案更劣,于是设f[i][j][x][y]为使i~j区间剩余最小值为x最大值为y且若有数剩余一定包含j的最小代 ...

  9. Python 源码剖析(五)【DICT对象】

    五.DICT对象 1.散列表概述 2.PyDictObject 3.PyDictObject的创建与维护 4.PyDictObject 对象缓冲池 5.Hack PyDictObject 这篇篇幅较长 ...

  10. Andorid API Package ---> android.accessibilityservice

    包名: android.accessibilityservice                     Added in API level 4 URL:http://developer.andro ...