C. Tea Tasting
https://codeforces.com/contest/1795/problem/C
用二分+前缀和+差分卡过
#include <iostream>
#include <cstring>
#include <algorithm>
#include <string>
#include <cmath>
using namespace std;
typedef long long ll;
const int N=2e5+10;
int t;
int n;
long long a[N],b[N],s[N],res[N],num[N];
void fact(int x,int l,int r){
num[l]++;
int k=l-1;
while(l<r){
int mid=l+r>>1;
if(s[mid]-s[k]<x) l=mid+1;
else r=mid;
}
if(s[l]-s[k]<=x) num[l+1]--;
else num[l]--,res[l]+=x-(s[l-1]-s[k]);//这里第l个人没有喝满
}
int main(){
cin>>t;
while(t--){
cin>>n;
memset(num,0,sizeof num);//注意归零
memset(res,0,sizeof res);
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++){
cin>>b[i];
s[i]=s[i-1]+b[i];
}
for(int i=1;i<=n;i++){
fact(a[i],i,n);
}
for(int i=1;i<=n;i++){
num[i]+=num[i-1];
res[i]+=num[i]*b[i];
cout<<res[i]<<" ";
}
cout<<endl;
}
}
/*
题目大意就是给定n杯茶多少毫升和n个人能喝多少毫升,一开始第i个人在喝第i杯茶
每喝完一次,他们就要向前走去喝第i-1杯茶,喝完为止,第一个人往前走就直接去除
思路就是对于前缀和和差分和二分
对于第i杯茶,找到第i~j这段和恰好大于a[i],然后第i个人的喝茶数就加一
对于第j个人需要特判3种情况
只需二分查找和,并记录每个人的喝茶数量,以及加上喝了不到最大喝茶量的茶
就是答案
*/
C. Tea Tasting的更多相关文章
- 女士品茶 | The Lady Tasting Tea | 统计学史
The Lady Tasting Tea - How Statistics Revolutionized Science in the Twentieth Century 本书只讨论了20世纪这100 ...
- TEA,XXTEA介绍,对称加密
总结:在使用加密的时候,我们可以加入随机数,这样相同的明文,每次加密后得到不同的密文,同时可以在密文中加入密文有效期,控制密文的有效时间长度. 针对有的功能扩展使用,很好的思想. TEA对 64 位数 ...
- TEA(Tiny Encryption Algorithm)
简介 TEA是一种简单高效的加解密算法,以速度快,实现简单著称.TEA算法每一次可以操作64-bit数据,采用128-bit作为key,算法采用迭代的形式,推荐的迭代轮数是64,最少32. 代码(默认 ...
- 2016 年青岛网络赛---Tea
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5881 Problem Description Tea is good. Tea is life. Te ...
- Codeforces Round #311 (Div. 2)B. Pasha and Tea 水题
B. Pasha and Tea Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/557/prob ...
- HDU 5881 Tea
Tea Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- 【置换,推理】UVa 1315 - Creaz tea party
Dsecription n participants of «crazy tea party» sit around the table. Each minute one pair of neighb ...
- QQ协议的TEA加解密算法
QQ通讯协议里的加解密算法. #include <stdio.h> #include <stdlib.h> #include <memory.h> #include ...
- TEA算法
我们要讨论的最后一个分组密码加密算法是TEA(Tiny Encryption Algorithm).到目前为止,我们在前面所呈现的连线图可能会使你得出如下结论:分组密码加密算法必须是复杂的.TEA却能 ...
- 利用TEA算法进行数据加密
TEA(Tiny Encryption Algorithm)是一种小型的对称加密解密算法,最初是由剑桥计算机实验室的 David Wheeler 和 Roger Needham 在 1994 年设计. ...
随机推荐
- 洛谷 P1478 陶陶摘苹果(升级版) 题解
这道题只要会自定义cmp恰当地进行排序,其他部分没有什么大问题. 上代码: 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n ...
- 从0-1超详细教你实现前端读取excel表格并渲染到界面
@ 目录 说明 前提 代码仓库 步骤一:准备工作 步骤二:实现导入表格解析 步骤三:实现表格渲染 结语 本文旨在解决无需调用后端接口,实现前端读取表格文件,获取文件内容,渲染到界面的需求 我的其他文章 ...
- java 进阶P-6.2+P-6.3
细胞自动机 CellularAutomation(细胞自动机)细胞自动机(英语:Cellular automaton),又称格状自动机.元胞自动机,是一种离散模型,在可算性理论.数学及理论生物学都有相 ...
- activemq插件在eos中的开发
ActiceMQ-CPP消息插件是CMS的一种实现,是一个能够与ActiveMQ进行通信的C++客户端库,ActiveMQ-CPP的架构设计能够支持可插拨的传输协议和消息封装格式,并且支持客户端容量, ...
- vue3 | shallowReactive 、shallowRef、triggerRef
shallowReactive 使用 reactive 声明的变量为递归监听,使用 shallowReactive 声明的变量为非递归监听(通俗的讲就是 reactive 创建的对象将会被 vue 内 ...
- 重拾prometheus
1.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...
- day09-2-验证以及国际化
验证以及国际化 1.概述 (1)概述 对于输入的数据(比如表单数据),进行必要的验证,并给出相应的提示信息 对于验证表单数据,SpringMVC 提供了很多使用的注解,这些注解由 JSR 303验证框 ...
- STM32F0_HAL初始化系列:FLASH写入
//读 read_temp = *(__IO uint32_t*)value_address; //写 static void flash_write(uint32_t address, uint32 ...
- 工控领域上云实践-Zstack和软赢
工业以太网常见五大协议对比 大规模电机控制的方案选择-电机和驱动器篇 大规模电机控制的方案选择-控制器篇 工控领域有各种各样的总线来通讯以控制设备,很小众的接口规范慢慢的更小众了,最常见的接口规范就是 ...
- ORACLE数据库起不来
由于意外导致数据库无法启动 首先切换到oracle用户,查看profile文件. su - oracle cat .bash_profile 然后进入数据库,查看挂载上 sqlplus "/ ...