[NOIP 2016] 蚯蚓
[题目链接]
https://www.lydsy.com/JudgeOnline/problem.php?id=4721
[算法]
首先,我们可以维护一个堆,堆中存放蚯蚓的长度,由于除当前蚯蚓其他的蚯蚓长度都要增加q,我们不妨将当前蚯蚓长度减去q,期望得分85pts
进一步观察,我们发现,同一种切法,早切的蚯蚓一定比晚切的长,根据这个性质,维护三个单调队列,分别维护未被切割的蚯蚓长度,被切割过的蚯蚓长度中较长的那些的长度,被切割的蚯蚓长度中较短的那些的长度,时间复杂度O(M),可以通过所有数据
[代码]
注意为了避免精度误差,需使用long double类型,否则可能无法通过UOJ Extra Test
#include<bits/stdc++.h>
using namespace std;
const long long INF = 1e18;
const long long MAXN = 1e7; long long i,n,m,u,value,t,x,y,mx,pos,v;
long long head[],tail[],ans1[MAXN],ans2[MAXN];
long long q[][MAXN]; template <typename T> inline void read(T &x)
{
long long f = ; x = ;
char c = getchar();
for (; !isdigit(c); c = getchar())
{
if (c == '-') f = -f;
}
for (; isdigit(c); c = getchar()) x = (x << ) + (x << ) + c - '';
x *= f;
} int main()
{ read(n); read(m); read(value); read(u); read(v); read(t);
for (i = ; i <= n; i++)
{
read(x);
q[][++tail[]] = x;
}
head[] = head[] = head[] = ;
sort(q[] + ,q[] + tail[] + ,greater<long long>());
for (i = ; i <= m; i++)
{
mx = -INF;
if (head[] <= tail[] && q[][head[]] > mx)
{
mx = q[][head[]];
pos = ;
}
if (head[] <= tail[] && q[][head[]] > mx)
{
mx = q[][head[]];
pos = ;
}
if (head[] <= tail[] && q[][head[]] > mx)
{
mx = q[][head[]];
pos = ;
}
ans1[i] = mx + (i - ) * value;
head[pos]++;
x = (long long)((mx + (i - ) * value) * (long double)1.0 * u / v) - i * value;
y = mx + (i - ) * value - (long long)((mx + (i - ) * value) * (long double)1.0 * u / v) - i * value;
q[][++tail[]] = max(x,y);
q[][++tail[]] = min(x,y);
}
for (i = ; i * t <= m; i++) printf("%lld ",ans1[i * t]);
printf("\n");
for (i = ; i <= n + m; i++)
{
mx = -INF;
if (head[] <= tail[] && q[][head[]] > mx)
{
mx = q[][head[]];
pos = ;
}
if (head[] <= tail[] && q[][head[]] > mx)
{
mx = q[][head[]];
pos = ;
}
if (head[] <= tail[] && q[][head[]] > mx)
{
mx = q[][head[]];
pos = ;
}
ans2[i] = mx + m * value;
head[pos]++;
}
for (i = ; i * t <= n + m; i++) printf("%lld ",ans2[i * t]);
printf("\n"); return ; }
[NOIP 2016] 蚯蚓的更多相关文章
- NOIP 2016 蚯蚓 (luogu 2827 & uoj 264) - 鬼畜的优化
题目描述 本题中,我们将用符号\lfloor c \rfloor⌊c⌋表示对c向下取整,例如:\lfloor 3.0 \rfloor= \lfloor 3.1 \rfloor=\lfloor 3.9 ...
- NOIP 2016 蚯蚓 题解
一道有趣的题目,首先想到合并果子,然而发现会超时,我们可以发现首先拿出来的切掉后比后拿出来切掉后还是还长,即满足单调递增,故建立三个队列即可. 代码 #include<bits/stdc++.h ...
- NOIP 2016 D2T2 蚯蚓](思维)
NOIP 2016 D2T2 蚯蚓 题目大意 本题中,我们将用符号 \(\lfloor c \rfloor⌊c⌋\) 表示对 \(c\) 向下取整,例如:\(\lfloor 3.0 \rfloor = ...
- NOIp 2016 总结
NOIp 2016 总结 -----YJSheep Day 0 对于考前的前一天,晚自习在复习图论的最短路和生成树,加深了图的理解.睡得比较早,养足精力明日再战. Day 1 拿到题目,先过一边,题目 ...
- 【NOIP 2016】斗地主
题意 NOIP 2016 斗地主 给你一些牌,按照斗地主的出牌方式,问最少多少次出完所有的牌. 分析 这道题的做法是DFS. 为了体现这道题的锻炼效果,我自己写了好多个代码. Ver1 直接暴力搞,加 ...
- [NOIP]2016天天爱跑步
[NOIP]2016天天爱跑步 标签: LCA 树上差分 NOIP Description 小C同学认为跑步非常有趣,于是决定制作一款叫做<天天爱跑步>的游戏.<天天爱跑步>是 ...
- NOIP 2016 迟来的满贯
17-03-22,雨 17-03-22,一个特别重要的日子 在这一天,本蒻攻克了NOIP 2016最难的一题,D1T2——天天爱跑步 实现了NOIP 2016的AK! YAYAYAYAYAYAY 自然 ...
- 【NOIP】提高组2016 蚯蚓
[题目链接]Universal Online Judge [题解]本题最大的特点在于从大到小切以及切分规则一致,都是切成px和x-px. 由这两个特点很容易得到结论,后切的蚯蚓得到的px一定比先切的蚯 ...
- NOIP 2016【蚯蚓】
好吧,我承认我是个智障-- 这道题一眼看上去就是个堆,然而实际上有单调性. 注意到,如果 \(q = 0\) 的话,将蚯蚓的左右两边分开丢进两个队列中,则两个队列都是单调不增的,因为每次取出的蚯蚓长度 ...
随机推荐
- JDBC链接数据库步骤
java中定义链接数据库的标准:JDBC 1.导包:不同数据库有不同的jdbc驱动包,而且jdbc驱动包和数据库版本必须对应 2.测试 3.写代码 try { 1.//加载JDBC驱动 Clas ...
- 清瘦的记录者: 一个比dbutils更小巧、好用的的持久化工具
https://gitee.com/bitprince/memory 1. 概述 1.1 连接.语句和结果集 从JDBC的规范上看,其对数据访问层有相当简洁的抽象:1.连接(connection) 2 ...
- [Windows Server 2008] Serv-U安全设置
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:Serv- ...
- Java_Web三大框架之Hibernate+HQL语言基础
12.1 HQL语言基础Hibernate查询语言为HQL(Hibernate Query Language),可以直接使用实体类名及属性.HQL语法类似于SQL,有SQL的关键词如select.fr ...
- (转) Hibernate注解开发
http://blog.csdn.net/yerenyuan_pku/article/details/70162268 Hibernate注解开发 在Hibernate中我们一般都会使用注解,这样可以 ...
- Android中Webview使用经验总结
很早前就喜欢在Android中使用Webview组件结合JS来做应用,总结了一些不错的小经验,在这里持续更新,自己备忘,也希望给其他需要的同学一些参考- 1.添加权限 要用Webview,确认你在** ...
- pycharm之gitignore设置
首先检查pycharm是否安装了ignore插件 项目目录如图: 选中项目automationTest名称,右击-->New-->查看是否有ignore file选项,如果有表示Pycah ...
- VS2015编译ffmpeg的问题解决
刚装了vs2015,打开一些ffmpeg项目,发现不能编译通过,包括stdio.h都无法找到,可能是vs2015的bug吧. 现在记录一下解决方法: 我的目录是这样定义的: C:\Program Fi ...
- vue移动端地址三级联动组件(一)
vue移动端地区三级联动 省,市,县.用的vue+mintUi 因为多级联动以及地区的规则比较多.正好有时间自己写了一个.有问题以及建议欢迎指出.涉及到dom移动,所以依赖vue+jquery.这边数 ...
- 腾讯云,搭建Docker环境
安装与配置 Docker 任务时间:10min ~ 20min 安装 Docker Docker 软件包已经包括在默认的 CentOS-Extras 软件源里.因此想要安装 docker,只需要运行下 ...