小蓝找到了一个外星文明留下来的遗迹,遗迹大门的屏幕上有一个长度为m 的字符串 t 和一个输入框,下面还有一个键盘,键盘为一个长度为 n 的字符串 s ,由一个可以横向移动的指针来敲击键盘,指针可以向左移或向右移,不能移出键盘。
小蓝需要在键盘字符串 s 上先指定指针初始位置然后不断移动指针的位置,过程中通过敲击指针所在的字符来进行输入。然而,指针最多只能移动 L 的距离,小蓝想输入一个尽可能长的一个 t 的前缀,请问他最多能输入多少位。
输入的第一行包含三个正整数 n, m, L ,相邻整数之间使用一个空格分隔。
第二行包含一个长度为 n 的字符串 s 。
第三行包含一个长度为 m 的字符串 t 。
3 6 5 abc acbbac
5
【样例说明】
初始选择指针位于键盘 abc 上的 a ,输入 acbbac 这 6 个字符分别需要指针移动 0, 2, 1, 0, 1, 2 的距离,而最大移动距离为 5 ,所以最多输入 5 个字符,移动 0 + 2 + 1 + 0 + 1 = 4 的距离。
【评测用例规模与约定】
对于 20% 的评测用例,1 ≤ m ≤ 20;
对于所有评测用例,1 ≤ n ≤ 103 ,1 ≤ m ≤ 105 ,1 ≤ L ≤ 109 且 s, t 中只包含小写字母,且 s 中一定包含所有 t 中出现过的字母,数据保证随机。
C++/C题目
【考生须知】
考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题。
考试时间为 4 小时。考试期间选手可浏览自己已经提交的答案,被浏览的答案允许拷贝。时间截止后,将无法继续提交或浏览答案。
对同一题目,选手可多次提交答案,以最后一次提交的答案为准。选手必须通过浏览器方式提交自己的答案。
选手在其它位置的作答或其它方式提交的答案无效。
试题包含“结果填空”和“程序设计”两种题型。结果填空题:要求选手根据题目描述直接填写结果。求解方式不限。不要求源代码。把结果填空的答案直接通过网页提交即可,不要书写多余的内容。
程序设计题:要求选手设计的程序对于给定的输入能给出正确的输出结果。考生的程序只有能运行出正确结果才有机会得分。注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。选手的程序必须是通用的,不能只对试卷中给定的数据有效。对于编程题目,要求选手给出的解答完全符合 GNU C/C++ 标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的 API。
代码中允许使用 STL 类库。
注意: main 函数结束必须返回 0。
注意: 所有依赖的函数必须明确地在源文件中 #include
所有源码必须在同一文件中。调试通过后,拷贝提交。
提交时,注意选择所期望的编译器类型。
试题A: 进制(本题总分:5 分)
【问题描述】
8100178706957568 这个数在用x 进制表示时(x 2 [11; 36]),仅包含数字而不包含字母,请问x 是多少。比如2588 用16 进制表示为a1c,包含字母a 和c。
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
试题B: 逆序对期望(本题总分:5 分)
【问题描述】
有一个数组,包含1 到n 这n 个整数,初始为一个从小到大的有序排列:
{1, 2, 3, 4; ... , n} 。一次随机交换操作指:均匀随机选取两个位置i,j ∈ [1,n] 且i ≠ j ,然后交换数组中这两个位置上的数。那么对于n = 51 ,对初始数组进行两次随机交换操作之后,数组中的逆序对的数量的期望是多少个。
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个实数,在提交答案时只填写这个实数,四舍五入保留两位小数,填写多余的内容将无法得分。