首页
比赛
题库
课程
竞赛讨论区
登录
/
注册
去牛客
首页
>
小苯的蓄水池(hard)
6条解析
开通博客写题解
_MZT_
发表于 2024-11-06 15:06:57
本题数据量较大,用并查集把移走挡板后联通的几个池子合并成一个连通块,求某个池子的蓄水量,只需向上找其祖宗的值和池子总数即可。(每个连通块中,编号大的池子为编号小的节点的父亲) #include<bits/stdc++.h> using namespace std; #define int
展开全文
AK_heaven
发表于 2024-11-04 10:52:43
首先因为隔板的存在,所以整个水池开始是一坨一坨的,一共有 坨。 操作 就是把所有与 有交集的坨坨拿来进行合并,合并结果为总水量除以总池子数。 考虑用 set 维护,这样查询就是严格 级别的,我们来分析修改操作。 由于每次合并坨数都会减少 ,所以最多合并 次,均摊下来总复杂度为 ,这样总复杂
展开全文
牛客290393167号
发表于 2024-11-12 11:55:55
不使用高级数据结构,仅用最基础算法的一个优雅的写法 思路:区间合并+前缀和 n,m=map(int,input().split()) pool=[0]+list(map(int,input().split())) s=[0]*(n+10) #前缀和 for i in range(1,n+1):
展开全文
Leavery
发表于 2024-11-04 17:27:25
D&E线段树做法 #include <iostream> #include <iomanip> using namespace std; int a[200005]; struct elem { double val; int l,r; }; struct
展开全文
已run的鲸鱼很喜欢修勾
发表于 2024-11-03 21:02:33
小苯的蓄水池线段树写法求debug:能过样例但零分 #include <bits/stdc++.h> using namespace std; const int N=1e5+10; double t[N]; double up[N],s[N]; double n,m; void bui
展开全文
剑绝尘
发表于 2024-11-03 21:11:37
#include <bits/stdc++.h> using namespace std; const int N = 2e5+10; int n,m; int f[N]; double x; struct node{ double sum; int cnt;
展开全文
查看本题
查看本题讨论
相关比赛
93847-牛客周赛 Round 66
进入比赛
94684-牛客周赛66内测
进入比赛
95611-金色传说
进入比赛
95685-选拔赛
进入比赛
95698-选拔赛2
进入比赛
等你来战
查看全部
牛客练习赛139
报名截止时间:2025-05-23 21:30
牛客周赛 Round 94
报名截止时间:2025-05-25 21:00
牛客2025年儿童节比赛
报名截止时间:2025-06-01 21:00
衡阳师范学院第二十五届程序设计竞赛(同步赛)
报名截止时间:2025-06-08 18:00
2025牛客暑期多校训练营1
报名截止时间:2025-07-15 17:00
扫描二维码,关注牛客
意见反馈
下载牛客APP,随时随地刷题