0420 第 2 场 算法季度赛
0420 第 2 场 算法季度赛
T1. 疯狂星期六【算法赛】
问题描述
麦肯鸡是一家名声在外的汉堡店,他们最近推出了一份名为 vivo50
的套餐,只需要在门口大声喊出 vivo50
,就能够获得这个套餐。
现在,请你打印 vivo50
,告诉计算机你想要这个套餐。虽然计算机无法为你提供这个套餐,但它可以帮助你通过本题。
输入格式
本题为填空题,无需输入即可作答。
输出格式
输出一个字符串,表示答案。
T2. 忙碌的售票员【算法赛】
问题描述
小蓝是一家旅行社的售票员,他每天都很忙碌。
为什么呢?原因是这样的,当地文旅局与旅行社合作,所以旅行社能够以更加低廉的价格拿到票,然后旅行社再将这些票配套导游服务一起卖给顾客。虽然看起来十分划算,但是这可苦了我们的售票员小蓝。因为即使能够拿到更低价的票,但是票仍然需要从机器中打印出,文旅局的机器十分的老旧,但是旅行社的订单又十分的多,这就导致了小蓝需要耗费大量的时间来打印票据。
文旅局共有三台打票机,每台机器每次只能打印一张票,打印一张票的时间是 分钟(即需要操作机器 分钟),但是机器每打完一张票后,都需要停机 分钟,不然的话,机器会过热宕机,俗称 “冷却”。
小蓝共有 张票需要打,同一时刻只能操作一台机器。他想知道,他最少需要多长时间才能打完所有的票。
输入格式
第一行输出一个整数 (),代表测试数据组数。
接下来 行,每行三个整数 (),代表打票时间 分钟,冷却 分钟,共有 张票需要打。
输出格式
输出 行,每行一个整数,代表最少需要多长时间能够打完票,单位为分钟。
样例输入
2
3 1 4
2 6 4
样例输出
12
10
说明
小蓝的操作时间区间如下:
第一组样例:
时间区间 | 机器编号 |
---|---|
秒 | 1 |
秒 | 2 |
秒 | 1 |
秒 | 2 |
第二组样例:
时间区间 | 机器编号 |
---|---|
秒 | 1 |
秒 | 2 |
秒 | 3 |
秒 | 1 |
T3. 兽之泪 II【算法赛】
问题描述
在蓝桥王国,流传着一个古老的传说:在怪兽谷,有一笔由神圣骑士留下的宝藏。
小蓝是一位年轻而勇敢的冒险家,他决定去寻找宝藏。根据远古卷轴的提示,如果要找到宝藏,那么需要集齐 滴兽之泪,同时卷轴中也记载了,每击败一次怪物,就能够收集一滴兽之泪。
小蓝知道,这些怪物并非泛泛之辈,每一只都拥有强大的力量和狡猾的技巧。每一只怪物都有它独特的弱点和对策,小蓝必须谨慎选择战斗的策略和使用的能量。
在怪兽谷中,有 只怪兽。对于第 只怪兽,第一次击败他需要 点能量,后续再击败他需要 点能量。在挑战过程中,前 只怪兽可以随意挑战,但是第 只怪兽是怪兽之王,如果要挑战第 只怪兽,那么对于前 只怪兽都要击败至少一次。
小蓝想知道,如果要集齐 滴兽之泪,那么至少需要多少能量。
输入格式
第一行包含一个整数 ,代表测试组数。
每组数据包含如下部分:
第一行包含两个整数 和 ,表示怪物的数量和需要收集的兽之泪的数量。。
接下来 行,每行包含两个整数 和 ,表示第 只怪物第一次和后续击败所需的能量。。
保证 。
输出格式
对于每组数据,输出一个整数,表示小蓝至少需要多少点能量才能收集完成。
样例输入
1
3 4
2 2
4 2
1 1
样例输出
8
说明
注意, 并不保证谁大谁小。
一种可行的方案是:
- 第一次选择 号怪物,消耗能量 。
- 第二次选择 号怪物,消耗能量 。
- 由于 都已经击败一次,所以可以选择 号,第三次选择 号怪物,消耗能量 。
- 第四次选择 号怪物,消耗能量 。
另外一种方案是:
四次都选择 号怪兽,消耗的能量是 。
T4. 超级数【算法赛】
问题描述
小蓝总是以为自己对数字很敏感,于是小桥给他出了道题,当然,他知道小蓝一定不会,于是简化了一下问题。
有一个 () 进制的超大的数 ,共有 个数位,同时给出一个超大的区间 ,问在 的子数中,有多少个子数在区间内。由于进制超大,我们用空格将大数的每一位区分开。
子数的定义: 删除一些 的前缀(可能为空)和后缀(可能为空),剩下来的部分组成的数,注意,只要是删除的前缀不同,或者后缀不同,就算不同的子数,例如 ,子段 形成的数 和子段 形成的数 视为不同的数。
当然,为了简化问题,小桥保证 的每一位是有序的,并且告诉你是单调不减的。
输入格式
第一行输入一个数 ,代表大数的长度。
第二行,输入 个数,表示大数 的每一位 ,每个数用空格隔开。
第三行输入一个数 ,代表区间左端点的长度。
第四行输入 个数,代表 的每一位 ,每个数用空格隔开。
第五行输入一个数 ,代表区间右端点的长度。
第六行,输入 个数,代表 的每一位 ,每个数用空格隔开。
。
。
超大数 的输入不存在前导 。
注意:在大数 的描述中, 是高位, 是低位,其他大数类似。
输出格式
输出一行一个整数 ,代表有 个子数在区间内。
样例输入
5
1 2 3 4 5
2
2 0
5
1 0 0 0 0
样例输出
8
说明
由于输入的数都没有超过 ,我们当作 进制看待,,,。
符合条件的数为 共计 个。
T5. 仪仗队【算法赛】
问题描述
为了迎接蓝桥王国一年一度的盛大庆典,国王组建了一支仪仗队,由 位士兵组成,每位士兵都有自己的礼仪值 。
然而,蓝桥国民对庆典的热情超乎国王的预期,报名参加的人数远远超过了广场的容量。面对这一情况,国王不得不做出艰难的决定,削减仪仗队的人数,淘汰 位士兵。
国王希望最大限度地保留仪仗队的总礼仪值,但又不希望直接淘汰掉礼仪值较低的 位士兵,以避免引起不满和抱怨。
为此,国王决定进行 次操作。每次操作,他会随机选择两个整数 和 ,然后淘汰当前仪仗队中第 名到第 名(包括 和 )礼仪值最低的士兵。如果存在多个礼仪值最低的士兵,将淘汰其中最左边的士兵。
现在,请来计算国王完成操作后仪仗队的总礼仪值。
注意:每次操作后仪仗队人数会减去 。
输入格式
第一行包含一个整数 ,表示仪仗队初始成员数。
第二行输入 个整数 , 表示第 名士兵的礼仪值。
第三行输入一个整数 表示国王的操作次数。
接下来 行每行输入两个整数 表示国王的操作区间,其中 表示操作时仪仗队成员数(对于第 次操作,)。
输出格式
输出一行一个整数表示答案。
样例输入
5
1 2 4 5 4
3
2 3
1 3
1 3
样例输出
9
说明
对于给定的样例,初始仪仗队的士兵礼仪值依次为 。
在国王的第一次操作中,他选择了区间 ,该区间内的最小值为 。因此,礼仪值为 的士兵被淘汰,新的仪仗队变为 。
接着,国王进行了第二次操作,选择了区间 ,其中最小值为 。于是,礼仪值为 的士兵被淘汰,最新的仪仗队变为 。
最后一次操作国王选择区间 ,该区间的最小值为 。由于区间内存在多个礼仪值为 的士兵,国王选择淘汰其中最左边的士兵,因此仪仗队最终变为 。
因此,最终仪仗队的总礼仪值是 。
T6. 修整道路【算法赛】
问题描述
蓝桥村的道路图可以看成一幅联通树形图(数据结构中的"树"),其中村政府所在的位置是 号点,也就是根节点。每家每户都可以看成一个节点。总共有 个节点, 条边,每条边就是一条道路,每条道路会有一个长度 ,从节点 到 的时间等于 之间最短路径上的长度之和。
现在村政府获得了一笔经费,这笔经费可以足够整改 次道路,每一次整改可以将这条道路的长度减少 。也就是说,对一条长度为 的道路进行一次整改,它的长度由 变为 ,并且一条道路可以经历多次整改。注意区分"道路"与"路径"的区别,道路只指一条边。
我们设 为从 号点到 点需要的时间,由于村政府需要长期发布一些通知,所以村长想知道经历整改后可以使得 最小为多少?
表示不大于 的最大整数,即向下取整。 表示不小于 的最小整数,即向上取整。
形式化的说:给定一棵 个节点的带权树形图,你有 次机会,每次你可以选择一条边,使得它的边权从 变为 ,询问你所有点到根节点的路径和最小是多少?
输入格式
第一行一个数字 ,代表测试组数。
对于每组输入,由以下部分组成:
第一行两个整数 ,保证 。
接下来 行,每行三个整数 ,表示 和 之间有一条长度为 的道路。
数据保证是一棵树。并且 。
输出格式
输出 行,每行一个整数 ,表示路径和。
样例输入
1
3 2
1 2 4
1 3 5
样例输出
5
说明
之间整修一次, 之间整修一次。
T7. 小蓝的密码【算法赛】
问题描述
小蓝是一个安全意识很强的男生,他绝对不允许别人动他的电脑,于是他给自己的电脑设置了一个密码()。 只由十进制数字 到 组成,但是由于硬盘太小,于是他就只设置了一个 位的 。
这一天,他想要打开电脑的时候,他发现他忘记了 ,但是幸好他设置了提示,是一个 位的字符串,分别代表每一位数字是否存在于 的状态。
我们定义字符串
如果 为
o
,代表数字 存在于 中;如果 为
?
,代表数字 可能存在于 中;如果 为
x
,代表数字 不存在于 中;
小蓝想要询问,可能的 有多少种,答案对 取模。
输入格式
第一行一个整数 ,保证 。
第二行是一个长度为 的字符串,保证只出现 x
,o
,?
三种字符。
输出格式
一个整数,代表密码的种类数量,答案对 取模。
样例输入
5
ooxxxxxxxx
样例输出
30
说明
密码必须只包含 ,并且不能全为 或者全为 。
所以答案为:。
T8. 外卖员的小爱好【算法赛】
问题描述
小桥是一名外卖小哥,他收到很多的订单需要送。
他所在城市的地图可以看成一幅无向连通图,其中有 个节点,编号为 ,有 条边。
每一笔订单由两个参数 组成,表示他需要从 点出发,将外卖送到 点。小桥可以随意规定他的路线,但是为了追求效率,在每一笔订单中,每条边只能经过一遍。
同时小桥是一个相信幸运的人,城市的某些路上装配了一些刮刮乐彩票机,小桥想知道在他的每笔订单中,是否有机会买彩票。
注意,每笔订单是独立的,每笔订单的过程只计算从 出发到 结束,你无须关注从 到 的过程。
输入格式
第一行输出一个整数 ,表示有 组数据。
每组数据由以下部分组成:
第一行输入三个整数 , 代表城市节点的数量, 代表边的数量, 代表订单的数量。
接下来 行描述道路,三个整数 ,表示存在一条 的道路, 为 时表示这条路上装配了刮刮乐彩票机, 为 时表示这条路上未装配彩票机。
接下来 行描述订单,两个整数 ,表示他需要从 点出发,将外卖送到 点。(由于是连通图,所有一定能到达)。
数据规模约定:
。
。
图中可以存在重边,自环。
输出格式
对于每个询问,输出一个字符串:
如果可以买彩票,输出:Yes
。
如果不可以,输出:No
。
样例输入
1
4 4 2
1 2 0
1 3 0
2 3 0
3 4 1
1 4
1 3
样例输出
Yes
No
说明
能够经过带有彩票的道路(红色边)。
不能够经过带有彩票的道路。