| 题目名称 | 4283. [THUPC 2025 Final] 石墨烯 |
|---|---|
| 输入输出 | thupc_2025_canteen.in/out |
| 难度等级 | ★★★☆ |
| 时间限制 | 1000 ms (1 s) |
| 内存限制 | 512 MiB |
| 测试数据 | 60 |
| 题目来源 |
|
| 开放分组 | 全部用户 |
| 提交状态 | |
| 分类标签 | |
| 查看题解 | 分享题解 |
| 通过:1, 提交:1, 通过率:100% | ||||
|
|
100 | 6.325 s | 5.75 MiB | C++ |
| 关于 石墨烯 的近10条评论(全部评论) |
|---|
thupc_2025_canteen.in
输出文件:thupc_2025_canteen.out
简单对比Ecrade_ 看着食堂里来回游走等位的人们陷入了沉思,于是他想到了这样一个问题。
食堂中共有 $n$ 个区域,在食堂即将开门时,第 $i$ 个区域中有 $a_i$ 名正在等位的学生和 $b_i$ 个空位。保证 $\sum\limits_{i=1}^{n}a_i\le \sum\limits_{i=1}^{n}b_i$。
食堂开门后的每个时刻,都会依次发生如下两个事件:
每个区域中当前正在等位的学生都会尽可能地坐到该区域的空位上。具体而言,假设第 $i$ 个区域中当前有 $x_i$ 名正在等位的学生和 $y_i$ 个空位。
在这群学生中,有恰好 $k$ 名学生因为赶时间上课,在食堂开门的瞬间就打包离开了。而 Ecrade_ 并不清楚这 $k$ 名学生都在哪些区域,所以他想知道,在这 $k$ 名学生所有可能的分布情况中,在食堂开门后,最少经过多少个时刻,就能够使得每个区域中都没有正在等位的学生。
第一行一个整数 $T\ (1\le T\le 5\times 10^5)$,表示测试数据组数。
对于每组测试数据:
保证 $0\le k\le \sum\limits_{i=1}^n a_i\le \sum\limits_{i=1}^{n}b_i$,所有测试数据的 $n$ 的和不超过 $5\times 10^5$。
对于每组测试数据,输出一行一个整数表示答案。
4 3 0 1 1 4 5 1 4 4 0 1 2 3 4 4 3 2 1 3 6 1 1 4 5 1 4 4 1 1 2 3 4 4 3 2 1
1 4 0 2
为方便表述,下直接用数组 $a,b$ 表示每个时刻后每个区域中正在等位的学生数以及剩余空位数。
对于第一组测试数据,没有学生会离开食堂:
对于第二组测试数据,没有学生会离开食堂:
对于第三组测试数据,所有学生都会离开食堂。
对于第四组测试数据,仅有一名学生会离开食堂:
若这名学生在第 $1$ 个区域,则 $a$ 会变为 $[0,2,3,4]$:
若这名学生在第 $2$ 个区域,则 $a$ 会变为 $[1,1,3,4]$:
若这名学生在第 $3$ 个区域,则 $a$ 会变为 $[1,2,2,4]$:
若这名学生在第 $4$ 个区域,则 $a$ 会变为 $[1,2,3,3]$: