牛牛一家昨天去了百丈飞瀑漂流,所以多了很多换洗的衣物,昨天玩的非常开心,但是今天晒衣服的时候却感到一阵无奈。 在费尽九牛二虎之力之后,牛牛终于洗完了 n 件衣服,但是,由于衣物上都沾着水,所以异常承重,而牛牛力气有限,一次最多可以拿起重量为 m 的东西。 因此,牛牛想要知道,每次拿起衣物去阳台晾晒的重量都不超过 m 的话,牛牛最少需要走几趟才能晒完所有衣服。
第一行输入两个正整数 n, m( 1≤ n≤ 20, 1≤ m≤ 1000000) ,代表衣物数量以及牛牛一次最多可以拿多重的东西。 第二行输入 n 个正整数 w_ 1, w_ 2,..., w_ n( 1≤ w_ i≤ 1000000) ,一次代表每件衣服的重量。
输出仅一行一个整数,代表牛牛最少走的趟数。
3 10 3 3 3
1
考点:广度优先搜索(BFS)
数据规模 n ≤ 20 | 限制 1 秒 / 64MB | 标准输入输出
参考方向:广度优先搜索(BFS)
按层扩散搜索,无权图上第一次到达即最短路。
思路框架(广度优先搜索(BFS) 通法 · 非本题专属)
实现要点:标记访问必须在入队时做,不能在出队时做,否则会重复入队甚至超时。
复杂度:时间 O(V+E) | 空间 O(V)
该范式的通法易错点
对照本题
本题在源数据中没有官方考点标签,方向由题面特征推断,仅供参考。
样例 1:输入 3 10 / 3 3 3 → 输出 1
三件衣物重量总和为 9 ,所以牛牛可以一次性拿起。
解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:贝壳找房2023届校招移动端类试卷。