抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

总时间限制: 1000ms 内存限制: 262144kB

描述

VariantF 的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。
假设内存中有 M 个单元,每单元能存放一个单词和译义。每当软件将一个新单词存入内存前,如果当前内存中已存入的单词数不超过 M,软件会将新单词存入一个未使用的内存单元;若内存中已存入 M 个单词,软件会清空最早进入内存的那个单词,腾出单元来,存放新单词。
假设一篇英语文章的长度为 N 个单词。给定这篇待译文章,翻译软件需要去外存查找多少次词典?假设在翻译开始前,内存中没有任何单词。

输入

第一行为两个正整数 M 和 N,代表内存容量和文章的长度。
第二行为 N 个非负整数,按照文章的顺序,每个数(大小不超过 1000000)代表一个英文单词。文章中两个单词是同一个单词,当且仅当它们对应的非负整数相同。
对于 50% 的数据,1<=N、M<=1000;
对于 100% 的数据,1<=N、M<=1000000。

输出

一个整数,为软件需要查词典的次数。

样例输入

1
2
3 7 
1 2 1 5 4 4 1

总时间限制: 1000ms 内存限制: 65536kB

描述

判断一个由 a-z 这 26 个字符组成的字符串中哪个字符出现的次数最多

输入

第 1 行是测试数据的组数 n,每组测试数据占 1 行,是一个由 a-z 这 26 个字符组成的字符串
每组测试数据之间有一个空行,每行数据不超过 1000 个字符且非空

输出

n 行,每行输出对应一个输入。一行输出包括出现次数最多的字符和该字符出现的次数,中间是一个空格。
如果有多个字符出现的次数相同且最多,那么输出 ascii 码最小的那一个字符

样例输入

1
2
3
4
2
abbccc

adfadffasdf

总时间限制: 1000ms 内存限制: 65535kB

描述

栈和队列都是常用的线性结构,它们都提供两个操作:

Push:加入一个元素。

Pop:弹出一个元素。

不同的是,栈是” 先进后出”,而队列则是” 先进先出”。

给出一个线性结构的进出顺序,判定这个结构是栈还是队列。

输入

第一行输入一个整数 t,代表有 t 组测试数据
对于每组测试数据,第一行输入一个整数 n,代表操作的次数。
随后输入 n 行,每行包含两个整数 type val。
当 type = 1 时,表示该次操作为 push 操作,val 表示进入的数字。当 type=2 时,表示该次操作为 pop 操作,val 代表出来的数字。
3<=n<=2000

总时间限制: 1000ms 内存限制: 1000kB

描述

栈是一种重要的数据结构,它具有 push k 和 pop 操作。push k 是将数字 k 加入到栈中,pop 则是从栈中取一个数出来。

栈是后进先出的:把栈也看成横向的一个通道,则 push k 是将 k 放到栈的最右边,而 pop 也是从栈的最右边取出一个数。

假设栈当前从左至右含有 1 和 2 两个数,则执行 push 5 和 pop 操作示例图如下:

1
2
3
          push 5          pop

1 2 -------> 1 2 5 ------> 1 2

现在,假设栈是空的。给定一系列 push k 和 pop 操作之后,输出栈中存储的数字。若栈已经空了,仍然接收到 pop 操作,

则输出 error。

输入

总时间限制: 1000ms 内存限制: 65536kB

描述

有两个字符串 str 和 substr,str 的字符个数不超过 10,substr 的字符个数为 3。(字符个数不包括字符串结尾处的’\0’。)将 substr 插入到 str 中 ASCII 码最大的那个字符后面,若有多个最大则只考虑第一个。

输入

输入包括若干行,每一行为一组测试数据,格式为
str substr

输出

对于每一组测试数据,输出插入之后的字符串。

样例输入

1
2
abcab eee
12343 555

总时间限制: 1000ms 内存限制: 5000kB

描述

我们经常遇到两多项式相加的情况,在这里,我们就需要用程序来模拟实现把两个多项式相加到一起。首先,我们会有两个多项式,每个多项式是独立的一行,每个多项式由系数、幂数这样的多个整数对来表示。

如多项式 2x20- x17+ 5x9- 7x7+ 16x5+ 10x4 + 22x2- 15

对应的表达式为:2 20 -1 17 5 9 - 7 7 16 5 10 4 22 2 -15 0。

为了标记每行多项式的结束,在表达式后面加上了一个幂数为负数的整数对。

同时输入表达式的幂数大小顺序是随机的。

我们需要做的就是把所给的两个多项式加起来。

输入

总时间限制: 1000ms 内存限制: 65536kB

描述

给出由 0 和 1 组成的矩阵,如果矩阵的每一行和每一列的 1 的数量都是偶数,则认为符合条件。
你的任务就是检测矩阵是否符合条件,或者在仅改变一个矩阵元素的情况下能否符合条件。
"改变矩阵元素" 的操作定义为 0 变成 1,1 变成 0。

输入

包含多个测试数据。每个测试数据有多行,第一行为矩阵的大小 n (n < 100),以下 n 行为矩阵的值。
输入以 0 结束。

输出

如果矩阵符合条件,则输出 OK
如果矩阵仅改变一个矩阵元素就能符合条件,则输出 Change bit (x,y),其中 x 和 y 为该元素的坐标
如果不符合以上两条,输出 Corrupt

样例输入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
4
1 0 1 0
0 0 0 0
1 1 1 1
0 1 0 1
4
1 0 1 0
0 0 1 0
1 1 1 1
0 1 0 1
4
1 0 1 0
0 1 1 0
1 1 1 1
0 1 0 1
0

总时间限制: 1000ms 内存限制: 65536kB

描述

求两个不超过 200 位的非负整数的和。

输入

有两行,每行是一个不超过 200 位的非负整数,可能有多余的前导 0。

输出

一行,即相加后的结果。结果里不能有多余的前导 0,即如果结果是 342,那么就不能输出为 0342。

样例输入

1
2
22222222222222222222
33333333333333333333

总时间限制: 1000ms 内存限制: 65536kB

描述

输入一个句子(一行),将句子中的每一个单词翻转后输出。

输入

只有一行,为一个字符串,不超过 500 个字符。单词之间以空格隔开。

输出

翻转每一个单词后的字符串,单词之间的空格需与原文一致。

样例输入

1
hello world

总时间限制: 1000ms 内存限制: 65536kB

描述

给定一个 row 行 col 列的整数数组 array,要求从 array [0][0] 元素开始,按从左上到右下的对角线顺序遍历整个数组。在这里插入图片描述

在这里插入图片描述

输入

输入的第一行上有两个整数,依次为 row 和 col。
余下有 row 行,每行包含 col 个整数,构成一个二维整数数组。
(注:输入的 row 和 col 保证 0 < row < 100, 0 < col < 100)

输出

按遍历顺序输出每个整数。每个整数占一行。

样例输入