YLT C++ 4级 2022.06
N5477 [CIE 202206 四级 T1] 公共子序列
题目描述
我们称序列 是序列 的子序列当且仅当存在 严格上升 的序列 $$,使得对 , 有 。比如 是 的子序列。 现在给出两个序列 和 ,你的任务是找到 和 的最大公共子序列,也就是说要找到一个最长的序列 ,使得 既是 的子序列也是 的子序列。
输入格式
输入包括多组测试数据。每组数据包括一行,给出两个长度不超过 的字符串,表示两个序列。两个字符串之间由 个空格隔开。
输出格式
对每组输入数据,输出一行,给出两个序列的最大公共子序列的长度。
样例
样例 1
输入:
abcfbc abfcab
programming contest
abcd mnp
输出:
4
2
0
提示
无
N5478 [CIE 202206 四级 T2] 硬币问题
题目描述
有 (不大于 )种硬币,编号为 至 ,已知每种硬币的重量(不超过 的正整数)和面额(不超过 的正整数),每种硬币数量不限。选取总重量不超过 (不大于 的正整数)的硬币,最多能获得多少总面额?
输入格式
第一行输入 第二行输入 第三行输入各硬币重量,用空格隔开 第四行输入各硬币价值,用空格隔开
输出格式
最大总面额
样例
样例 1
输入:
3
5
1 2 5
1 3 6
输出:
7
提示
无
N5479 [CIE 202206 四级 T3] 田忌赛马
题目描述
你一定听过田忌赛马的故事吧?
如果 匹马变成 匹,齐王仍然让他的马按从优到劣的顺序出赛,田忌可以按任意顺序选择他的赛马出赛。赢一局,田忌可以得到 两银子,输一局,田忌就要输掉 两银子,平局的话不输不赢。
请问田忌最多能赢多少银子?
输入格式
输入包含多组测试数据. 每组测试数据的第一行是一个整数 ,表示田忌和齐王都拥有 匹马。接下来一行是 个整数,表示田忌的马的速度,下一行也是 个整数,表示齐王的马的速度。 输入的最后以一个 表示结束。
输出格式
对每组数据,输出一个整数,表示田忌至多可以赢多少银子,如果田忌赢不了,就输出一个负数,表示田忌最少要输多少银子。
样例
样例 1
输入:
3
92 83 71
95 87 74
2
20 20
20 20
2
20 19
22 18
0
输出:
200
0
0
提示
无
N5480 [CIE 202206 四级 T4] 上机
题目描述
又到周末了,同学们陆陆续续开开心心的来到机房上机。 也不例外,但是他到的有点晚,发现有些机位上已经有同学正在做题,有些机位还空着。细心的 发现,一位同学来到机房,坐在机位 上,如果他的左右两边都空着,他将获得能力值 ;如果当他坐下时,左边或者右边已经有一个人在上机了,他将获得能力值 ;如果当他坐下时,他的左边右边都有人在上机,他将获得能力值 。
同时他发现,已经在上机的同学不会受到刚要坐下的同学的影响,即他们的能力值只会在坐下时产生,以后不会发生变化;第一个机位左边没有机位,最后一个机位右边没有机位,无论何时坐在这两个机位上将无法获得 值。
这时 发现有一排机器还空着,一共有 个机位,编号 到 。这时有 位同学们陆陆续续来到机房,一个一个按照顺序坐在这排机位上。聪明的 想知道怎么安排座位的顺序,可以使这 位同学获得能力值的和最大呢?
输入格式
第一行一个整数
第二行 个数,表示
第三行 个数,表示
第四行 个数,表示
输出格式
一个整数,表示获得最大的能力值和
样例
样例 1
输入:
4
1 2 2 4
4 3 3 1
2 1 1 2
输出:
14
提示
第一位同学坐在第四个机位上,获得能力值 ; 第二位同学坐在第三个机位上,获得能力值 ; 第三位同学坐在第二个机位上,获得能力值 ; 第四位同学坐在第一个机位上,获得能力值 ; 总和为 。
