AT2402 Dam
传送门
考虑到一个很显然的事实:水是逃不掉的,一定要接的
所以我们就可以得到一个结论:如果当前的水温比上次低,就混合起来(因为水是逃不掉的),如果高就保留(因为我可以将前面的全部抛弃,只取这个高的)
维护一个单调递增队列,复杂度\(O(n)\),然后就做完了,答案就在做的过程中统计就好了
代码:
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<iostream>
#include<queue>
using namespace std;
void read(int &x){
    char ch;bool ok;
    for(ok=0,ch=getchar();!isdigit(ch);ch=getchar())if(ch=='-')ok=1;
    for(x=0;isdigit(ch);x=x*10+ch-'0',ch=getchar());if(ok)x=-x;
}
#define rg register
const int maxn=5e5+10;
int n,m;
double sum,now,a[maxn],b[maxn],ans[maxn];
struct oo{double a,b;}q[maxn];
int main(){
    read(n),read(m);
    for(rg int i=1,x,y;i<=n;i++)read(x),read(y),a[i]=x,b[i]=y;
    int l=1,r=0;ans[1]=a[1];
    for(rg int i=1;i<=n;i++){
        sum=sum+a[i]*b[i],now=now+b[i];
        q[++r]=(oo){a[i],b[i]};
        while(l<=r){
            if(now<=m)break;
            if(now-q[l].b<m){
        		sum=sum-q[l].b*q[l].a;
                q[l].b=q[l].b-(now-m);
                sum=sum+q[l].b*q[l].a;
                now=m;
                break;
            }
            else now-=q[l].b,sum-=q[l].b*q[l].a,l++;
        }
        ans[i]=sum/m;
        while(l<r&&q[r].a<q[r-1].a){
            double tot=q[r-1].b+q[r].b;
            sum=sum-q[r].a*q[r].b-q[r-1].a*q[r-1].b,now=now-q[r].b-q[r-1].b;
            q[r-1].a=(q[r].a*q[r].b+q[r-1].a*q[r-1].b)/tot;
            q[r-1].b=tot;
            sum=sum+q[r-1].a*q[r-1].b,now=now+q[r-1].b;
            r--;
        }
    }
    for(rg int i=1;i<=n;i++)printf("%.7lf\n",ans[i]);
}
												
											AT2402 Dam的更多相关文章
- AT2402 [ARC072D] Dam
		
首先我们可以将 \(t_i \times v_i\) 看作一个整体,不妨令 \(x_i = v_i, y_i = t_i \times v_i\) 这样两堆水混合后相当于将两个维度相加,方便了计算. ...
 - 十天学会单片机Day5 IIC总线AT2402芯片(EEPROM)应用
		
1.采用串行总线技术可以使系统的硬件设计大大简化.系统的体积减小.可靠性提高.同时,系统的更改和扩充极为容易. 常用的串行扩展总线有: IIC (Inter IC BUS)总线.单总线(1-WIRE ...
 - DAM的使用结合串口和中断以及GPIO。
		
DAM的使用结合串口和中断以及GPIO. 当我学到DMA这章的时候就意味着我已经学完了,GPIO里的LED,按键,还有就是串口发送数据. 那么下面就来总结下前段时间所学的知识(因为接下来有断时间我是没 ...
 - 基于PaddlePaddle的语义匹配模型DAM,让聊天机器人实现完美回复 |
		
来源商业新知网,原标题:让聊天机器人完美回复 | 基于PaddlePaddle的语义匹配模型DAM 语义匹配 语义匹配是NLP的一项重要应用.无论是问答系统.对话系统还是智能客服,都可以认为是问题和回 ...
 - 直接IO  零拷贝  DAM  自缓存应用程序
		
直接IO 零拷贝 DAM 自缓存应用程序
 - Computer Graphics Principles And Practice (James Foley / Andries Van Dam / Morgan McGuire / David Sklar / James D. Foley 著)
		
1 Introduction 2 Introduction to 2D Graphics Using WPF 3 An Ancient Renderer Made Modern 4 A 2D Grap ...
 - 【ARC072F】 Dam 单调队列
		
题目大意: 有一个水库,容量为$L$,一开始是空的.有$n$天. 对于第i天,每天早上有$v_i$单位的,水温为$t_i$的水流进来.每天晚上你可以放掉一些水,多少自定.但是必须保证第二天水库不会溢出 ...
 - 【arc072f】AtCoder Regular Contest 072 F - Dam
		
题意 有一个体积为L的水池,有N天 每天早上进水Vi体积的Ti温度的水. 每天晚上可以放掉任意体积的水. 问每天中午,水池满的情况下,水温最高多少. 水的温度只受新加进的谁的影响,对于水\(W1(T1 ...
 - uva 1599 ideal path(好题)——yhx
		
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABGYAAAODCAYAAAD+ZwdMAAAgAElEQVR4nOy9L8/0ypH/Pa8givGiyC
 
随机推荐
- PS色调— —通道混合
			
clc; clear all; close all; addpath('E:\PhotoShop Algortihm\Image Processing\PS Algorithm'); Image=im ...
 - Tensorflow Summary用法
			
本文转载自:https://www.cnblogs.com/lyc-seu/p/8647792.html Tensorflow Summary用法 tensorboard 作为一款可视化神器,是学习t ...
 - CSS:word-wrap/overflow/transition
			
一 自动换行:一个div有固定宽高,如果其内容很长,必须两行以上才能显示完整的时候,有两种情况要留意 1 默认如果其内容都是中文,那么内容是可以自适应,而不会溢出div 2 如果内容除了中文之外,还有 ...
 - org.springframework.web.client.HttpClientErrorException: 400 null
			
异常代码: org.springframework.web.client.HttpClientErrorException: 400 null 已解决. 百度了一下400代表无法解析请求. 说明请求是 ...
 - 串口编程3:使用串口读取GPS信息
			
关于GPS的使用,参考. 本文主要参考的博客,在此表示感谢!!! 主函数 主函数gps_main.c,这里便涉及到了串口的打开,读操作,以及调用了串口设置函数: #include <stdio. ...
 - shutdown-用于关闭/重启计算机
			
Linux系统下的shutdown命令用于安全的关闭/重启计算机,它不仅可以方便的实现定时关机,还可以由用户决定关机时的相关参数.在执行shutdown命令时,系统会给每个终端(用户)发送一条屏显,提 ...
 - LEADTOOLS V19: 世界领先的图像处理开发工具包强势来袭
			
投递人 itwriter 发布于 2014-12-22 16:04 评论(0) 有214人阅读 原文链接 [收藏] « » LEAD 科技于 2014 年 12 月 11 日发布 LEA ...
 - Python 中的赋值、拷贝、引用
			
在 python 中赋值语句总是建立对象的引用值,而不是复制对象.因此,python 变量更像是指针,而不是数据存储区域. 如图所示,当改变一个变量的值,另一个的值也会跟着改变.也就是浅拷贝. 若要实 ...
 - .net core webapi +ddd(领域驱动)+nlog配置+swagger配置 学习笔记(2)
			
DDD领域驱动模型设计 什么是DDD 软件开发不是一蹴而就的事情,我们不可能在不了解产品(或行业领域)的前提下进行软件开发,在开发前,通常需要进行大量的业务知识梳理,而后到达软件设计的层面,最后才是开 ...
 - EasyUI+MVC4实现后台管理系统一:登陆和进入后台界面
			
首先实现登陆: 未完待续...