Vessels CodeForces - 371D
A - Vessels
CodeForces - 371D
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int maxn = 2e5+10;
int a[maxn];
int sum[maxn];
int f[maxn];
int getf(int x)
{int r = x;while(r != f[r])r = f[r];int i = x,j;while(f[i] != r){j = f[i];f[i] = r;i = j;}return r;
}
void mix(int x,int y)
{int t1 = getf(x);int t2 = getf(y);if(t1 > t2)f[t2] = t1;else f[t1] = t2;
}
int main()
{int n;while(~scanf("%d",&n)){memset(a,0,sizeof(a));memset(sum,0,sizeof(sum));for(int i = 1;i <= n;i++){scanf("%d",&a[i]);f[i] = i;}f[n+1] = n+1;int q;scanf("%d",&q);while(q--){int op;scanf("%d",&op);if(op == 1){int x,have;scanf("%d%d",&x,&have);while(have > 0){int F = getf(x);if(F == n+1) break;if(a[F] - sum[F] >= have){sum[F] += have;have = 0;}else{have -= a[F] - sum[F];sum[F] = a[F];mix(F,F+1);}x = F;}}else{int x;scanf("%d",&x);printf("%d\n",sum[x]);}}}return 0;
}
Vessels CodeForces - 371D相关推荐
- CodeForces - 371D. Vessels(并查集)
题目链接:http://codeforces.com/problemset/problem/371/D点击打开链接 D. Vessels time limit per test 2 seconds m ...
- 【CodeForces - 371D】Vessels(思维,元素合并,并查集)
题干: There is a system of n vessels arranged one above the other as shown in the figure below. Assume ...
- CodeForces 371D. Vessels
暴力+胡乱优化就过了..tags给的东西似乎什么都没用到.....CF的数据是不是有点水啊.....果然是没有营养的题目..... D. Vessels time limit per test 2 s ...
- CodeForces - 371D Vessels 【并查集】
Vessels 题意: 自上而下的n个碗,向某个碗中倒水,如果溢出,则会流向它之下的下一个未满的碗.有两种操作:1 p x表示往第p个碗中导入x的水,2 p表示询问此时第p个碗中的水量. 题解: 未经 ...
- Codeforces 371D. Vessels【并查集】
题目大意: 给出一堆从上到下叠起来的容器,有两种操作:第一种是在编号为i的容器中加入x的水(保证水溢出之后会流到下一个最近的容器(如果存在)中):第二种是查询编号为i的容器中有多少水. 做法: 首先, ...
- CodeForces 371D Vessels(树状数组)
树状数组,一个想法是当往p注水时,认为是其容量变小了,更新时二分枚举,注意一些优化. #include<cstdio> #include<iostream> #include& ...
- Codeforces I. Vessels(跳转标记)
题目描述: Vessels time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
- CF 371D Vessels 【并查集】
给出一个竖着的n个容器每个容器的容积,从上到下分别是1,2,3,4,,n,从某点开始浇水,保证该层满了后水能流向下一层,一层一层,直到不再溢出或者最底下都装满了留到地上去了为之. 给出n个操作/询问 ...
- codeforces:D. Vessels【py的栈太浅了】
分析 这个的话,水流到下面的就要并查集起来 满了的话,就指向下面 不停地更换pa ac code import sys input = sys.stdin.readlinedef solve():n ...
最新文章
- 由于没有远程桌面授权服务器可以提供许可证,远程回话被中断
- $http中文乱码|param乱码|angular提交后台乱码|
- 图像PSNR值及MSE值的计算
- 程序员常犯的5个非技术性错误
- 滴滴人脸识别申诉照片怎么拍_涅槃乐队Nevermind封面照片是怎么拍出来的?
- C# 对话框使用整理
- Spring读取xml配置文件的原理与实现
- python查找第k大的数_Python实现查找二叉搜索树第k大的节点功能示例
- “七”待已久,“夕”望是你,“快”来学习,“乐”在其中!
- 2021-06-28操作表单
- WAP 非443端口的ADFS如何配置Web应用程序代理
- soul群聊派对显示服务器异常,soul群聊派对在哪?功能、查找步骤有这些
- java之调用七牛云接口完成视频加水印
- 辩证的看待IDE工具(Java与Python学习通法)
- 计算机试图启动宏,打开电子表格时,将提示禁用或启用宏的解决方案
- c语言编程中句柄无效怎么解决,句柄无效,小编教你句柄无效怎么解决
- 学习 Java8 函数式编程 (二)
- 耳机四根线的图解_type c数据线拆解及接线图文详解
- 智能匹配 — 百度SEM
- 【已解决】adb connect x.x.x.x:5555报错由于 目标计算机积极拒绝,无法连接
热门文章
- 亚马逊运营必备实用工具
- JAVA编程思想笔记 : 并发 [ 一 ]
- 海量数据:判断一棵树是否为另一棵树的子树
- 二叉树 判断一棵树是否是另一棵树的子树
- Facebook打开,跳转个人首页、动态方式
- asp.net学生选课系统_网上选课系统_教师管理系统_ 学生管理系统_教务管理系统
- Oracle的SYS.AUD$占满系统表空间了怎么办
- 银星能源计提减值准备应对光伏产品价格下滑
- 实例004:计算正方形的周长
- Object.assign()