1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol AI分析

解题思路

核心思想

  • 每个 tab 表示一个静态连通分量。

  • 维护两个哈希表:

    • sz[tab]:该组试管数量。
    • sum[tab]:该组当前总水量。

P3605.第1题-连通器

    1000ms Tried: 108 Accepted: 22 Difficulty: 4 所属公司 : 科大讯飞
    算法与标签>并查集

题目内容

牛牛最近学习了连通器原理:在连通器中装有同种液体,当连通器中液体不流动时,各容器中液面总保持相平。如下图所示,四个底部连通的容器液面都是相平的。

image

牛牛没有图中那么奇怪的容器,他只有 nnn 支规格相同的试管,这些试管中有一些底部是相互连通的,为了避免混淆试管之间的连通性,牛牛给第 iii 支试管标记为 tabitab_itabi​ ——若两支试管标记相同,则它们连通。初始时,每支试管中都没有水,且试管体积视为无穷大。现有三种操作:

  • 加水:向第 aaa 支试管中注入 bbb 毫升水;

  • 抽水:从第 aaa 支试管中当前有多少毫升水。

  • 查询:查询第 aaa 支试管中当前有多少毫升水。

根据连通器原理,每个连通组内部的水会平分到各支试管中 ,因此,在同一连通组内,每支试管的水量始终相等。

输入描述

第一行输入两个整数 n,m(1≦n,m≦105)n,m(1≦n,m≦10^5)n,m(1≦n,m≦105) ,新试管数量、操作数量。

第二行输入 nnn 个整数,tab1,tab2,...,tabn(1≦tabi≦n)tab_1,tab_2,...,tab_n(1≦tab_i≦n)tab1​,tab2​,...,tabn​(1≦tabi​≦n) 表示每支试管的连通标记。

此后 mmm 行,每行先输入一个整数 o(1≦o≦3)o(1≦o≦3)o(1≦o≦3) 。表示操作类型,对应三种操作,随后在同一行:

  • 若 o=1o= 1o=1 , 输入两个整数 a,b(1≦a≦n;1≦b≦104)a,b(1≦a≦n;1≦b≦10^4)a,b(1≦a≦n;1≦b≦104) ,表示注水操作;

  • 若 o=2o = 2o=2 ,输入两个整数 a,b(1≦a≦n;1≦b≦104)a,b(1≦a≦n;1≦b≦10^4)a,b(1≦a≦n;1≦b≦104) ,表示抽水操作;保证此时该连通组至少有 bbb 毫升水可抽;

  • 若 o=3o=3o=3 ,输入一个整数 a(1≦a≦n)a(1≦a≦n)a(1≦a≦n),表示查询操作。

除此之外,保证至少存在一次查询操作。

输出描述

对于每个查询操作,新起一行输出一个实数,表示第 aaa 支试管中水的体积。

由于实数的计算存在误差,当误差的量级不超过 10−510^{-5}10−5 时,您的答案都将被接受。具体来说,设您的答案为 aaa ,标准答案为 bbb ,当且仅当 ∣a−b∣max(1,∣b∣)≤10−5\frac{∣a-b∣}{max(1,∣b∣)}≤10^{-5}max(1,∣b∣)∣a−b∣​≤10−5 时,您的答案将被接受。

样例1

输入

5 6
1 2 1 2 3
1 1 5
3 1
1 2 7
3 4
2 4 4
3 2

输出

2.500000
3.500000
1.500000

说明

在这个样例中,第 111 支试管和第 333 支试管连通,第 222 支试管和第 444 支试管连通。操作如下:

  • 注水:向第 111 支试管中注入 555 毫升水,此时第 1,31,31,3 支试管中各有 2.52.52.5 毫升水;

  • 注水:向第 222 支试管中注入 777 毫升水,此时第 2,42,42,4 支试管中各有 3.53.53.5 毫升水;

  • 抽水 : 从第 444 支试管中抽出 444 升水,此时第 2,42,42,4 支试管中各有 1.51.51.5 毫升水。需要注意的是,虽然直观地看第 444 支试管中此时只有 3.53.53.5 毫升水,但是第 444 支试管所在的整个连通器中有 777 毫升水,因此牛牛是可以抽取 444 升水的。

样例2

输入

6 8
1 2 2 2 3 1
1 3 10
3 2
2 3 2
3 3
1 1 9
1 5 10
3 5
3 6

输出

3.333333
2.6666667
10.000000
4.500000

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 1, 54ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?