【NOIP2016提高组day2】蚯蚓
那么我们开三个不上升队列,
第一个记录原来的蚯蚓,
第二个记录乘以p的蚯蚓
第三个记录乘以(1-p)的蚯蚓,
在记录每条就要入队列的时间,就可以求出增加的长度
每次比较三个队列的队首,取最大的值x的切。
将xp加入第二个队列的队尾
将x(1-p)加入第三个队列的队尾
(第二个第三个队列保证单调,上面证明了)
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<cstring>
using namespace std;
int q[][][],ans[];
int n,m,Q,u,v,t,a[],head[],tail[],out;
bool cmp(int a,int b)
{
return a>b;
}
int main()
{
scanf("%d%d%d%d%d%d",&n,&m,&Q,&u,&v,&t);
for (int i=;i<=n;i++) scanf("%d",&a[i]);
sort(a+,a+n+,cmp);
for (int i=;i<=n;i++) q[][i][]=a[i];
head[]=;tail[]=n;
head[]=;tail[]=;
head[]=;tail[]=;
for (int i=;i<=m;i++)
{
long long Max=,maxj=;
for (int j=;j<=;j++)
if (head[j]<=tail[j]&&q[j][head[j]][]+(i--q[j][head[j]][])*Q>Max) Max=q[j][head[j]][]+(i--q[j][head[j]][])*Q,maxj=j;
head[maxj]++;
if (i%t==) ans[++out]=Max;
q[][++tail[]][]=Max*u/v;q[][tail[]][]=i;
q[][++tail[]][]=Max-Max*u/v;q[][tail[]][]=i;
}
for (int i=;i<=out;i++)
{
printf("%d",ans[i]);
if (i!=out) printf(" ");
}
printf("\n");
out=;
for (int i=;i<=n+m;i++)
{
long long Max=,maxj=;
for (int j=;j<=;j++)
if (head[j]<=tail[j]&&q[j][head[j]][]+(m-q[j][head[j]][])*Q>Max) Max=q[j][head[j]][]+(m-q[j][head[j]][])*Q,maxj=j;
if (i%t==) ans[++out]=Max;
head[maxj]++;
}
for (int i=;i<=out;i++)
{
printf("%d",ans[i]);
if (i!=out) printf(" ");
}
printf("\n");
}
【NOIP2016提高组day2】蚯蚓的更多相关文章
- 【NOIP2016提高组】蚯蚓
https://www.luogu.org/problem/show?pid=2827 首先考虑暴力:每次都是拿最长的蚯蚓,容易想到用堆.每次除拿出来的以外所有的蚯蚓都增长,容易想到用一个懒惰标记来记 ...
- Noip2016 提高组 Day2 T1 组合数问题
题目描述 组合数表示的是从n个物品中选出m个物品的方案数.举个例子,从(1,2,3) 三个物品中选择两个物品可以有(1,2),(1,3),(2,3)这三种选择方法.根据组合数的定 义,我们可以给出计算 ...
- 【NOIP2016提高组day2】愤怒的小鸟
分析 Kiana最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于 (0, 0) 处,每次Kiana可以用它向第一象限发射一只红色的小鸟, 小鸟们的飞行轨迹均 ...
- 【题解】NOIP2016提高组 复赛
[题解]NOIP2016提高组 复赛 传送门: 玩具谜题 \(\text{[P1563]}\) 天天爱跑步 \(\text{[P1600]}\) 换教室 \(\text{[P1850]}\) 组合数问 ...
- 【题解】NOIP2016 提高组 简要题解
[题解]NOIP2016 提高组 简要题解 玩具迷题(送分) 用异或实现 //@winlere #include<iostream> #include<cstdio> #inc ...
- NOIP2016提高组解题报告
NOIP2016提高组解题报告 更正:NOIP day1 T2天天爱跑步 解题思路见代码. NOIP2016代码整合
- 18/9/16牛客网提高组Day2
牛客网提高组Day2 T1 方差 第一眼看就知道要打暴力啊,然而并没有想到去化简式子... 可能因为昨晚没睡好,今天上午困死 导致暴力打了一个半小时,还不对... #include <algor ...
- [日记&做题记录]-Noip2016提高组复赛 倒数十天
写这篇博客的时候有点激动 为了让自己不颓 还是写写日记 存存模板 Nov.8 2016 今天早上买了两个蛋挞 吃了一个 然后就做数论(前天晚上还是想放弃数论 但是昨天被数论虐了 woc noip模拟赛 ...
- 2013 Noip提高组 Day2
3288积木大赛 正文 题目描述 春春幼儿园举办了一年一度的“积木大赛”.今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是hi. 在搭建开始之前 ...
随机推荐
- 函数作用域中的this问题
首先一起回顾下预解析和作用域吧: 预解析: 浏览器每读到一个script标签或function,先不执行任何代码,会先把整个代码快速的浏览一遍,然后从中 挑出 var 和 function两个关键字 ...
- sublime中css输入分号后自动提示的烦恼
sublime开发前端确实好用,有好多些个的插件,轻量便捷,但是在使用sublime中的一些插件的时候总是会遇到困扰,跟自己想象中的不一样,比如在使用SublimeCodeIntel插件的时候,就会遇 ...
- Chome——扩展程序,获取更多扩展程序报错
修改/替换hosts文件 地址:c:/windows/system32/drivers/etc hosts:可从网上搜索下载或网盘下载(链接: http://pan.baidu.com/s/1bpu6 ...
- 使用nginx实现纯前端跨越
你是否厌倦了老是依赖后台去处理跨域,把握不了主动权 你是否想模仿某个app倒腾一个demo,却困于接口无法跨域 那么很幸运,接下来我将现实不依赖任何后台,随心所欲的想访问哪个域名就访问哪个! 下载ng ...
- Tomcat Cluster负载均衡
author:JevonWei 版权声明:原创作品 Tomcat Cluster负载均衡 环境 tomcatA 172.16.253.108 tomcatB 172.16.253.105 代理服务器 ...
- 谈一谈EasyUI中TreeGrid的过滤功能
写在最前面 这个星期一直在纠结easyui的treegrid的过滤功能,原因呢,自然是项目中一个莫名奇妙的需求. easyui虽说是后端程序员的前端框架,但是说句实话,除去api,让我直接写里面的节点 ...
- bootstrap 基础(二)
1 栅格系统偏移 栅格系统的偏移只能向右:col-xs-offset-x. <!DOCTYPE html> <html lang="en"> <hea ...
- Java基础学习 —— io
/** 解决数据与数据之间的传输问题. 字节流: 输入字节流: -------| InputStream 所有输入字节流的基类.抽象类. -----------| FileInputStream 读取 ...
- Nhibernate学习教程(2)-- 第一个NHibernate程序
NHibernate之旅(2):第一个NHibernate程序 本节内容 开始使用NHibernate 1.获取NHibernate 2.建立数据库表 3.创建C#类库项目 4.设计Domain 4- ...
- Linux运维:安装CentOS7.2-图解
矮哥linux运维群: 93324526 笔者QQ:578843228 此篇博文针对最小化安装,和只有图解.有不懂地方,欢迎加群询问.