CSP-S2周末刷题班(第四场)
Posted royann
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSP-S2周末刷题班(第四场)相关的知识,希望对你有一定的参考价值。
A. 挑战
时间限制: 1.0 秒
空间限制: 512 MB
题目描述
企鹅豆豆在玩一款叫做 Slay the spire 的游戏。为了简化游戏,我们将游戏规则魔改如下:
主角一开始血量为 HH,游戏里一共有 NN 个房间,每个房间里有一些怪物,第 ii 个房间需要受到 DiDi 的伤害才能解决所有怪物, 解决怪物后会获得对应的 CiCi 的血量恢复,CiCi 严格小于 DiDi,一个房间的怪物只能最多打一次。主角只有在血量为负数时才会死亡,即使血量刚好为 00 主角也能凭借强大的意志继续打怪。
现在给出每个房间的数据,豆豆想知道他最多能打完多少个房间?
输入格式
从标准输入读入数据。
输入第一行两个正整数 N,HN,H,表示房间数目和主角的血量。
输入第二行有 NN 个正整数 DiDi, 第 ii 个数对应第 ii 个房间。
输入第三行有 NN 个非负整数 CiCi, 第 ii 个数对应第 ii 个房间。
输出格式
输出到标准输出。
输出一行一个整数表示最多能打完的房间数目。
样例1输入
4 12
4 8 2 1
2 0 0 0
样例1输出
3
样例1解释
他可以选择 1,3,41,3,4 号房间。
样例2
见下发文件。
子任务
对于 30%30% 的数据, 1≤N≤101≤N≤10。
对于另外 10%10% 的数据, Ci=0Ci=0。
对于另外 10%10% 的数据, Di?Ci=1Di?Ci=1。
对于另外 30%30% 的数据, 1≤N≤10001≤N≤1000。
对于 100%100% 的数据, 1≤N≤5×1031≤N≤5×103。
对于所有数据,0≤Ci<Di≤5000,1≤Di,H≤5000
B. 航班复杂度
时间限制: 1.0 秒
空间限制: 512 MB
题目描述
企鹅国有 NN 座城市和 MM 条不同的航班,每条航班都有指定的起点 uiui 和终点 vivi,乘坐这个航班可以从城市 uiui 到达城市 vivi,但是不能从 vivi 到 uiui,也就是这个航班是单向的。
企鹅豆豆最近被企鹅航空抽中成为 SSSSVIP,并获得了 LL 张航班卷,一张航班卷可以免费乘坐一次航班。企鹅豆豆迫不及待地要开始他的 环国之旅,他会根据自己心情随意选择一个起点城市,然后连续乘坐 LL 次航班。对于每种连续乘坐航班的方案,我们会记录他到达每个 城市的顺序,生成一个对应的序列,比如 3,2,33,2,3 表示他乘坐了两次航班,从 33 号城市飞到 22 号城市再飞到 33 号城市。两个连续乘坐航班方案不同,当且仅当对应的序列不同。
企鹅豆豆现在现在想知道他最多能有多少种不同的连续航班乘坐方案。但是由于 LL 实在是太太太大了,所以答案 AnsAns 也非常非常大,所以他并不想求出具体值,他发明了一个叫做航班复杂度的计量方式——我们称航班复杂度是整数 kk,当且仅当存在常数 cc 使得对于充分大的 LL, cLk>AnscLk>Ans(注意 AnsAns 也是会随 LL 的增大而增大)。
豆豆现在想知道,当前的航班复杂度 kk 最小能是多少?
输入格式
从标准输入读入数据。
第一行两个正整数 N,MN,M,表示城市数目和航班数。
接下里 MM 行,每行两个正整数 ui,vi(ui≠vi)ui,vi(ui≠vi) 描述一个航班。
输出格式
输出到标准输出。
输出一行一个整数 kk 表示答案。 如果不存在任何整数 kk 满足要求,请输出 -1
。
样例1输入
5 5
1 2
2 3
3 4
4 5
5 1
样例1输出
0
样例1解释
由于从任意城市出发坐 LL 次航班只有一种方案,所以令常数 c=2c=2 有 cL0>1cL0>1,且不存在更小的整数 kk 满足这个要求。
样例2
见下发文件。
子任务
对于 15%15% 的数据,航班形成多个不相交的环。
对于另外 15%15% 的数据,如果存在航班 (ui,vi)(ui,vi) 则存在航班 (vi,ui)(vi,ui)。
对于另外 15%15% 的数据,航班形成的简单环只有两个,以及一些不形成环的航班。
对于另外 20%20% 的数据,1≤n≤100,1≤m≤3001≤n≤100,1≤m≤300。
对于另外 20%20% 的数据,1≤n≤1000,1≤m≤30001≤n≤1000,1≤m≤3000。
对于另外 5%5% 的数据,m=5m=5。
对于 100%100% 的数据,1≤n,m≤1051≤n,m≤105。
C. 数据生成器
时间限制: 1.0 秒
空间限制: 512 MB
题目描述
豆豆正在熬夜造下周NOIP模拟赛的数据。
他在写一道“求一个数列最长连续不下降子串的长度”的数据生成器, 第i个整数的生成范围是 [Li,Ri][Li,Ri]。
他想知道生成的数列的答案最大能是多少?
这里 最长连续不下降子串
是指原序列最长的连续区间,该区间内数值单调不减。
输入格式
从标准输入读入数据。
输入第一行两个整数 NN,表示数列长度。
接下来 NN 行,每行两个数 LiLi 和 RiRi。
输出格式
输出到标准输出。
输出一行一个整数表示最大的答案。
样例1输入
6
6 10
1 5
4 8
2 5
6 8
3 5
样例1输出
4
样例1解释
一个可能的数列为:
6,3,5,5,7,36,3,5,5,7,3
样例2
见下发文件。
子任务
对于 10%10% 的数据,N≤10,1≤Li≤Ri≤6N≤10,1≤Li≤Ri≤6
对于 30%30% 的数据,N≤300N≤300
对于 40%40% 的数据,N≤2000N≤2000
对于 70%70% 的数据,N≤100000N≤100000
对于 100%100% 的数据,N≤3000000,1≤Li≤Ri≤109N≤3000000,1≤Li≤Ri≤109
请选手选择较快的读入方式。
D. 排列组合
时间限制: 1.0 秒
空间限制: 512 MB
题目描述
企鹅豆豆最近沉迷排列无法自拔,他现在有一个长度为 NN 的排列,他现在拥有神力每次可以把这个排列的一个非空区间里所有数字变成 这个区间数字的最大值。比如他可以对于 1,3,2,41,3,2,4 的 [3,4][3,4] 区间进行这个操作,使之变为 1,3,4,41,3,4,4。
他喜欢没见过的排列,所以他想知道通过不超过 KK 个这样的操作,可以把一个排列变成多少种不同的序列?
一个长度为 NN 排列是指一个长度为 NN 含有正整数 11 到 NN 且任意两个不同位置的数字不相同的序列。 两个序列不同当且仅当他们有一个位置上的数值不同。
输入格式
从标准输入读入数据。
输入第一行两个整数 NN 和 KK,表示排列的长度以及最多的操作次数。
接下来一行 NN 个正整数表示这个排列。
输出格式
输出到标准输出。
输出一行一个非负整数表示所有能够变成的不同的序列个数。由于答案可能会非常大,所以你需要把答案对 998244353998244353 取模。
样例1输入
3 2
3 1 2
样例1输出
4
样例1解释
所有可能的序列有:
- 3,1,23,1,2 (可以不操作)
- 3,2,23,2,2
- 3,3,23,3,2
- 3,3,33,3,3
样例2
见下发文件。
样例3
见下发文件。
子任务
对于 1?61?6 号测试点,第 ii 个测试点保证 N=2iN=2i。
对于 7?87?8 号测试点,保证 K=1K=1。
对于 9?129?12 号测试点,保证序列严格上升,且 9,109,10 测试点 N=KN=K。
对于 13?1413?14 号测试点,保证 N,K≤20N,K≤20。
对于 15?1615?16 号测试点,保证 N,K≤50N,K≤50。
对于 17?1817?18 号测试点,保证 N,K≤100N,K≤100。
对于所有数据保证 1≤N≤200,0≤K≤2001≤N≤200,0≤K≤200。
以上是关于CSP-S2周末刷题班(第四场)的主要内容,如果未能解决你的问题,请参考以下文章