c++信息学奥赛课后习题

城//<<c++信息学奥赛>>第二章

/*

1、输出“Hello World!”

 

2、输出2个输入的整数

描述

输入3个整数,把第2个输入的整数输出

输入

只有一行,共3个整数,整数之间由一个空格分隔。

输出

只有一行,一个整数,即输入的第2个整数

样例输入

123  456  789

样例输出

456

 

3、计算(a+b)*c的值

输入3个整数a,b,c,计算(a+b)*c的值并输出。

 

4、字符三角形

使用字符”+”,用它构造一个底边为5个字符,高3个字符的等腰字符三角形。

 

5.三位数的逆序数

输入一个三位数,输出它的逆序数,比如输入789,输出987。

样例输入

789

样例输出

987

 

6、小玉买签字笔

描述

班主任分配给小玉一个任务,到文具店里买尽量多的签字笔。已知一支签字笔的价格是1元9角,而班主任给小玉的钱是a元b角,小玉最多能买多少支签字笔呢?

输入

输入的数据在一行内,包括2个正整数,依次表示为a和b,a<=1000,b<=9。

输出

输出一个整数,表示小玉最多能买多少支签字笔。

样例输入

10  3

样例输出

5

*/

 

//<<c++信息学奥赛>>第三章

/*

3.9.2挑战一下

1、计算学过的数据类型存储空间大小

描述

分别定义int、short、float、double、bool、char类型的变量各一个,

并依次输出它们的存储空间大小(单位:字节)。

输入

输出

一行,6个整数,整数之间用一个空格隔开,分别是6个不同类型变量的存

储空间大小。

样例输入

样例输出

4  2  4  8  1  1

 

2、浮点数向零舍入

描述

输入一个单精度浮点数,将其向零舍入到整数。向零舍入的含义是正数向下舍

入,负数向上舍入。(可以使用强制类型换来实现)

输入

一个单精度浮点数。

输出

一个整数,即向零舍入到整数的结果。

样例输入

2.3     -2.3

样例输出

2      -2

 

3、打印ASCII码

描述

输入一个除空格以外的可见字符(保证在scanf函数中可以使用格式说明符“%c”

读入),输出其ASCII码。  int()  double()  char()

输入

一个除空格以外的可见字符。

输出

一个十进制数整数,即该字符的ASCII码。

样例输入

A

样例输出

65

 

4、整型与布尔型的转换

描述

将一个整型变量的值赋给一个布尔型变量,再将这个布尔型变量的值赋给一个整型

变量,得到的值是多少?

输入

一个整型范围内的整数,即初始整型变量的值。

输出

一个整数,经过上述过程后得到的结果。

样例输入

3

样例输出

1

 

5、获取“Hello,World!”所占空间的大小

描述

还记得在上一章里输出过的“Hello,World!”吗?它虽然不是本章所涉及的基本

数据类型的数据,但同样可以用sizeof()函数获取它所占用的空间大小。请编程

求出它的大小,看看和设想的是否一样。

输入

输出

一个格数,即“Hello,World!”的字节大小。

 

6、计算球的体积

描述

对于半径为r的球,其体积的计算公式为V=4/3*π*r*r*r,这里取π=3.14。现给定r的值,求V。

输入

输入一个不超过100的非负实数, 即球半径,类型为double。

输出

输出一个实数,即球的体积,保留到小数点后2位。

样例输入

5

样例输出

523.33

 

7.求等差数列末项

描述

给出一个等差数列的前两项a1、a2,求第n项是多少。

输入

一行,包含3个整数,a1、a2、n。-100<=a1<=100(a2同),0<n<=100。

输出

一个整数,即第n项的值。

样例输入

1  4  100

样例输出

298

 

8、大象喝水

描述

一头大象口渴了,要喝20升水才能解渴,但现在只有一个高h和底面半

径r,单位都是厘米。

输出

输出一行,包含一整数,表示大象至少要喝水桶数。

样例输入

23  11

样例输出

3

*/

 

 

 

 

//<<c++信息学奥赛>>第四章

/*

4.9.2挑战一下

1、判断数的正负

描述

给定一个整数n,判断其正负。

输入

一个整数n。

输出

如果n>0,输出positive;如果n=0,输出"zero";如果n<0,输出"negative"。

样例输入

1

样例输出

positive

 

2、晶晶赴约会

描述

晶晶的朋友贝贝约她下周一起去看展览,但晶晶每周的一、三、五必须上

课,请帮晶晶判断她能否接受贝贝的邀请,如果能输出“YES”,如果不能

则输出“NO”。

输入仅一行,贝贝邀请晶晶去看览展览的日期,用数字1-7表示从星期一

到星期日。

输出

输出仅一行,如果晶晶可以接受贝贝的邀请,输出“YES”;否则,输出“

NO”。注意“YES”和“NO”都是大写字母。

样例输入

1

样例输出

NO

 

3、苹果和虫子

描述

芳芳买了一箱苹果,有n个,很不幸的是买完时箱子里混进了一条虫子。虫

子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,

那么经过y小时,芳芳还有多少个完整的苹果?

输入

输入仅一行,包括n、x和y(均为整数)。

输出仅一行,剩下的苹果个数。

样例输入

10  4  9

样例输出

7

 

4、奇偶数判断

描述

给定一个正整数,判断该数是奇数还是偶数。

输入仅一行,一个大于零的正整数n。

输出

输出仅一行,如果n是奇数,输出“odd”;如果n是偶数,输出“even”。

样例输入

5

样例输出

odd

 

5、输出绝对值

描述

输入一个浮点数,输出这个浮点数的绝对值。

输入

输入一个浮点数,其绝对值不超过10000。

输出

输出这个浮点数的绝对值,保留到小数点后两位。

样例输入

-3.14

样例输出

3.14

 

6、ASCII值的奇偶判断

描述

输入任意一个字符,判断其ASCII值是否为奇数,若是,输出“YES”;

否则,输出“NO”。例如,字符A的ASCII值是65,若输入字符“A”,

则输出“YES”;若输出字符“B”(ASCII值是66),则输出“NO”。

输入

输入一个字符

输出

如果其ASCII值是否为奇数,则输出“YES”;否则,输出“NO”。

样例输入

A

样例输出

YES

 

7、计算邮资

描述

根据邮件的重量和用户是否选择加急计算邮费。计算规则:重量在1000g

以内(包括1000g),基本费8元。超过1000g的部分,每500g加收超重费

4元,不足500g部分按500g计算;如果用户选择加急,多收5元。

输入

输入仅一行,包含整数和一个字符,以一个空格分开,分别表示重量(单

位为g)和是否加急。如果字符是“y”,说明选择加急;如果字符是“n”,

说明不加急。

输出

输出仅一行,包含一个整数,表示邮费。

样例输入

1200 y

样例输出

17

 

*/

 

 

 

 

 

 

 

 

 

 

 

 

 

 

//<<c++信息学奥赛>>第五章

/*

5.7.2挑战一下

1、求平均年龄

描述

班级有学生若干名,给出每名学生的年龄(整数),求本班所有学生的

平均年龄,保留到小数点后2位。

输入

第1行有一个整数n(1<=n<=100),表示学生的总人数。其后n行每行有一

个整数,表示每个学生的年龄,取值为15-25.

输出

输出一行,该行包含一个浮点数,为要求的平均年齡,保留到小数点后2

位。

样例输出

2    18     17

样例输出

17.50

 

2、财务管理

描述

Larry毕业后找到了一份工作。他工资很高,但似乎总是不够用。Larry认

为他需要控制自已的支出以解决自已的财务问题。Larry拿到了自已的银行

账户详单,想看看自已有多少钱。请帮助Larry写一个程序,通过过去12个

月中每月的月末结余,计算平均结余。

输入

输入12行,每行包含一个数,为某个月的结余。每个数都是不大于1000000

的正数,保留2位小数,省略“$”符号。

输出

输出一个数,为这12个月的平均月末结余,保留2位小数,并在最前面加一

个“$”符号。

样例输出

100.00

489.12

12454.12

1234.10

823.05

109.20

5.27

1542.25

839.18

83.99

1295.01

1.75

样例输出

$1581.42、

 

3、均值

描述

给出一组样本数据,计算其均值。

输入

输入有2行,第1行包含一个整数n(n<100),代表样本容量;第2行包含n个

绝对值不超过1000浮点数,代表各个样本数据。

输出

输出一行,包含一个浮点数,表示均值,精确到小数点后4位。

样例输入

2

1.0  3.0

样例输出

2.0000

 

4、求整数的和与均值

描述

输入n(1<=n<=10000)个整数,求它们的和与均值。

输入

输入第1行是一个整数n,表示有n个整数。

第2行到第n+1行每行包含1个整数。每个整数的绝对值均不超过10000。

输出

输出一行,先输出和,再输出平均值(保留到小数点后5位),数字之间用单

个空格分隔。

样例输入

4

344

222

343

222

样例输出

1131  282.75000

 

5、数据统计

描述

输入一些整数,求出它们的最小值、最大值和平均值(保留3位小数)。输入

的数都是不超过1000的整数。

样例输入

2  8  3  5  1  7  3  6

样例输出

1  8  4.375

 

6、买房子

描述

某程序员每年可存n万元,他希望在中关村公馆买一套60平方米的房子,现在

价格是200万元。假设房子价格以每年百分之K增长,并且该程序员每年存款

金额不变,他第几年能够买下这套房子?(第1年存n万元,房价200万元)

输入

输入一行,包含2个正整数,n(10<=n<=50)和k(1<=k<=20),中间用单个空格

隔开。

输出

如果在第20年或者之前就能买下之套房子,则输出一个整数i,表示最早在第

i年能买下,否则输出impossible。

样例输入

50  10

样例输出

8

 

7、数1的个数

描述

给定一个十进制正整数n,写下从1到n的所有整数,然后数一下其中出现的数

字“1”的个数。例如当n=2时,写下1,2,这样只出现了1个“1”;当n=12

时,写下1,2,3,4,5,6,7,8,9,10,11,12,这样出现了5个“1”。

输入

一个正整数n(1<=n<=10000)。

输出

一个正整数,即“1”的个数。

样例输入

12

样例输出

5

 

8、金币

描述

国王将金币作为工资,发放给忠诚的骑士。第1天,骑士收到一枚金币;之后2

天(第2天和第3天),每天收到2枚金币;之后3天(第4、5、6天),每天收到

3枚金币;之后4天(第7、8、9、10天),每天收到4枚金币......这种工资发

放模式会一直延下去:当连续n天每天收到n枚金币后,骑士会在之后的连续

n+1天里,每天收到n+1枚金币(n为任意正整数)。你需要编写程序,确定从

第1天开始的给定天数内,骑士一共获得了多少金币。

输入

一个整数n(1<=n<=10000),表示天数。

输出

骑士获得的金币数。

样例输入

6

样例输出

14

 

*/

 

 

 

 

 

 

 

 

 

 

 

 

 

//<<c++信息学奥赛>>第六章

/*

6.3.2挑战一下

1、与指定数字相同的数的个数

描述

输出一个整数序列中与指定数字相同的数个数。

输入

输入包含3行:

第1行为n,表示整数序列的长度(n<=100);

第2行为n个整数,整数之间以一个空格分开;

第3行包含一个整数,为指定的整数m。

输出

输出为n个数中与m相同的数的个数。

样例输入

3

2  3  2

2

样例输出

2

 

2、陶陶摘苹果

描述

陶陶家的院子里有一棵果树,每到秋天树上就会结出10个苹果。苹果成熟

的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接

用手摘到苹果的时候,就会踩到板凳上再试试。

现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最

大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹

果就会掉下来。

输入

包括2行数据。第1行包含10个100到200之间(包括100和200)的整数(以

厘米为单位),分别表示10个苹果到地面的高度,2个相邻的整数之间用一

个空格隔开。第2行只包括一个100到120之间(包含100和120)的整数(以

厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。

输出

包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。

样例输入

100   200  150  140  129  134  167  198  200  111

110

样例输出

5

 

3、计算书费

描述

下面是一个图书的单价表:

《计算概论》28.9元/本

《数据结构与算法》32.7元/本

《数字逻辑》45.6元/本

《c++程序设计教程》78元/本

《人工智能》35元/本

《计算机体系结构》86.2元/本

《编译原理》27.8元/本

《操作系统》43元/本

《计算机网络》56元/本

《JAVA程序设计》65元/本

给定每种图书购买的数量,编程计算应付的总费用。

输入

输入一行,包含10个0-100的整数,分别表示购买的《计算概论》《数据

结构与算法》《数字逻辑》《c++程序设计教程》《人工智能》《计算机

体系结构》《编译原理》《操作系统》《计算机网络》《JAVA程序设计》

的数量(以本为单位)。每2个整数之间用一个空格分开。

输出

输出一行,包含一个浮点数f,表示应付的总费用,精确到小数点后一位。

样例输入

1  5  8  10  5  1  1  2  3  4

样例输出

2140.2

 

4、数组逆序重放

描述

将一个数组中的值按逆序重新存放。例如,原来的顺序为8、6、5、4、1,

要求改为1、4、5、6、8。

输入

输入2行:第1行数组中为元素的个数n(1<n<100),第2行为n个整数,每

2个整数之间用空格分隔。

输出

输出为一行,输出逆序后的数组,每2个整数之间用空格分隔。

样例输入

5

8  6  5  4  1

样例输出

1  4  5  6  8

 

5、年齡与疾病

描述

某医院想统计某项疾病的发生是否与年齡有关,需要对以前的诊断记录进行

整理,按照0-18、19-35、36-60、61以上(含61)4个年龄段,统计该年龄

段患病人数占总患病人数的比例。

输入

共2行,第1行为过往病人的数目n(0<n<=100),第2行为每个病人患病时的

年龄。

输出

按照0-18、19-35、36-60、61以上(含61)4个年龄段的顺序输出该年龄段患

病人数占总患病人数的比例,以百分比的形式输出,精确到小数点后2位。每

个年龄段占一行,共4行。

样例输入

10

1  11  21  31  41  51  61  71  81  91

样例输出

20.00%

20.00%

20.00%

40.00%

 

6、校门外的树

描述

某校大门外长度为L的马路上有一排树,每2棵相邻的树之间的间隔为1米。我

们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置。

数轴上的每个整数点,即0,1,2,...,L,都种有一棵树。

马路上有一些区域要用来建地铁,这些区域用它们在数轴上的起始点和终止点

表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合

的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任

务是计算将这些树都移走后,马路上还剩多少棵树。

输入

第1行有2个整数L(1<=L<=10000)和M(1<=M<=100),L代表马路的长度,M代

表区域的数目,L和M之间用一个空格隔开。接下来的M行每行包含2个不同的整

数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。

输出

包括一行,这一行只包含一个整数,表示马路上剩余的树的数目。

样例输入

500  3

150  300

100  200

470  471

样例输出

298

 

7、有趣的跳跃

描述

一个长度为n(n>0)的序列中存在“有趣的跳跃”,当且仅当相邻元素之差的

绝对值经过排序后正好是从1到n-1。例如,1、4、2、3存在“有趣的跑跃”,

因为差的绝对值分别为3,2,1。当然,任何只包含单个元素的序列一定存在“

有趣的跳跃”。你需要写一个程序判定给定序列是否存在“有趣的跳跃”。

输入

输入为一行,第1个数是n(0<n<3000),为序列长度,接下来有n个整数,依

次为序列中的元素,各元素的绝对值均不超过1000000000。

输出

输出为一行,若该序列存在“有趣的跳跃”,输出“Jolly”;否则,输出“

Not jolly”。

样例输入

4  1  4  2  3

样例输出

Jolly

 

8、石头剪刀布

描述

石头剪刀布是生活中常见的猜拳小游戏。石头胜剪刀,剪刀胜布,布胜石头。

如果2个人出拳一样,则不分胜负。

一天,小A和小B正好在玩石头剪刀布。已知他们的出拳都是有周期性规律的,

比如“石头——布——石头——剪刀——石头——布——石头——剪刀...”,

就是以“石头——布——石头——剪刀”为周期不断循环的。请问,小A和小B

比了N轮之后,谁赢的轮数多?

输入

输入包含3行。

第1行包含3个整数:N、NA、NB,分别表示比了N轮,小A出拳的周期长度,小B

出拳的周期长度。0<N<100,0<NA<100,0<NB<100。

第2行包含NA个整数,表示小A出拳的规律。

第3行包含NB个整数,表示小B出拳的规律。

其中,0表示“石头”,2表示“剪刀”,5表示“布”。相邻2个整数之间用单

个空格隔开。

输出

输出一行,如果小A赢的轮数多,输出A;如果小B赢的轮数多,输出B;如果2人

打平,输出draw。

样例输入

10  3  4

0  2  5

0  5  0  2

样例输出

A

 

*提示

对于样例的测试数据,猜拳过程如下:

A:0 2 5 0 2 5 0 2 5 0

B:0 5 0 2 0 5 0 2 0 5

A赢了4轮,B赢了2轮,双方打平4轮,所以A赢出交换后的结果。

输入

输入共6行,前5行为矩阵的每一行元素,元素与元素之间以一个空格分开。第6

行包含2个整数m、n,以一个空格分开。(1<=m<=5,1<=n<=5)

输出

输出交换之后矩阵,矩阵的每一行元素点一行,元素之间以一个空格分开。

样例输出

1 2 2 1 2

5 6 7 8 3

9 3 0 5 3

7 2 1 4 6

3 0 8 2 4

1 5

样例输出

3 0 8 2 4

5 6 7 8 3

9 3 0 5 3

7 2 1 4 6

1 2 2 1 2

 

10、图像相似度

描述

给出2幅相同大小的黑白图像(像素点颜色用0-1矩阵表示),求它们的相似

度。若2幅图像在相同位置上的像素点颜色相同,则称它们在该位置具有相同

的像素点。2幅图像的相似度定义为相同像素点数占总像素点数的百分比。

输入

第1行包含2个整数m和n,表示图像的行数和列数,中间用单个空格隔开。1<=

m<=100,1<=n<=100.

之后m行,每行n个整数0或1,表示第1幅黑白图像上各像素点的颜色。相邻2

个数之间用单个空格隔开。

输出

一个实数,表示相似度(以百分比的形式给出),精确到小数点后2位。

样例输入

3  3

1  0  1

0  0  1

1  1  0

1  1  0

0  0  1

0  0  1

样例输出

44.44%

 

*/

 

 

 

 

 

 

 

 

 

 

//<<c++信息学奥赛>>第七章

/*

7.5.2挑战一下

1、输出亲朋字符串

描述

编写程序,求给定字符串s的亲朋字符s1。

亲朋字符串s1定义如下:给定字符串s的第1个字

符的ASCII码值加第2个字符的ASCII码值,得到

第1个亲朋字符串s1定义如下:给定字符串s的第

1个亲朋字符;给定字符串s的第2个字符的ASCII

码值加第3个字符的ASCII码值,得到第2个亲朋字

符;以此类推。亲朋字符串的最后一个字符由给定

字符串s的最后一个字符ASCII码值加s的第1个字符

的ASCII码值得到。

输入

输入一行,一个长度大于等于2,小于等于100的字

符串。字符串中每个字符的ASCII码值不大于63。

输出一行,为变换后的亲朋字符串。

样例输入

1234

样例输出

cege

 

2、合法c标识符

描述给定一个不包含空白符的字符串,请判断是否

是C语言合法的标识符号(注:题目保证这些字符串

一定不是C语言的保留字)。

C语言标识符要求:

1)非保留字。

2)只包含字母、数字及下划线(_)。

3)不以数字开头。

输入

一行,包含一个字符串,字符串不包含任何空白字符,

且长度不大于20。

输出

一行,如果它是C语言的合法标识符,则输出“YES”,

否则输出“NO”。

样例输入

RKPEGX9R;TWyYcp

样例输出

NO

 

3、配对碱基链

描述

脱氧核糖核酸(DNA)由2条互补的碱基链以双螺旋的

的方式结合而成。而构成DNA的碱基共4种,分别为腺

嘌呤(A)、鸟嘌呤(G)、胸腺嘧啶(T)和胞嘧啶(

C)。在2条互补碱基链的对应位置上,腺嘌呤总是和

胸腺嘧啶配对,鸟嘌呤总是和胞嘧啶配对。你的任务

就是根据一行单链上的碱基序列,给出对应的互补链

上的碱基序列。

输入

一个字符串,表示一条碱基链。这个字符串只包含大写

字母A、T、G、C,分别表示腺嘌呤、胸腺嘧啶、鸟嘌呤

和胞嘧啶。字符串长度不超过255。

输出

一个只含有大写字母A、T、G、C的字符串,为与输入碱

基链互补的碱基链。

样例输入

ATATGGATGGTGTTTGGCTCTG

样例输出

TATACCTACCACAAACCGAGAC

 

4、字符替换

描述

把一个字符串特定的字符全部用给定的字符替换,得到

一个新的字符串。

输入

一行,由一个字符串和2个字符组成,中间用单个空格隔

开。字符串是待替换的字符串,字符串长度小于等于30

个字符,且不含空格等空白符。第1个字符为需要被替

换的特定字符,第2个字符为用于替换的给定字符。

输出

一行,即替换后的字符串。

样例输入

hello-how-are-you o O

样例输出

hellO-hOw-are-yOu

 

5、找第1个只出现一次的字符

描述

给定一个只包含小写字母的字符串,请找到第1个仅

出现一次的字符。如果没有输出“NO”。

输入

一个字符串,长度小于100000。

输出

输出第1个仅出现一次的字符,若没有输出“NO”。

样例输入

adhaahhb

样例输出

d

 

6、字符串循环移位问题

描述

给定两个字符串和一个整数n,n表示次数,求在n次内是

否能让第1个字符串通过循环移位的方式找到第2个字符串。

如:判断“1234asdf”是否能在3次变换内变成“4asdf

123”。第1次经过循环移位变成“234asdf1”,第2次经

过循环移位变成“34asdf12”,第3次经过循环移位变成“

4asdf123”,所以在3次内能变成目标字符串。能找到输

出“YES”,否则输出“NO”。

输入

一行,包含3部分,数据与数据之间用空格隔开。第1部分

是原字符串,第2部分是变换后字符串,第3部分是次数n。

输出

如果能找到则输出“YES”,不能找到则输出“NO”。

样例输入

1234asdf  4asdf123  3

样例输出

YES

 

7、删除单词后缀

描述

给定一个单词,如果该单词以ab、sy或者ing后缀结尾,

则删除该后缀(保证删除后的单词长度大于0);如果没

有这些后缀,则不处理。

输入

一行,包含一个没有空格的单词(单词长度不超过48)。

输出

输出处理后的单词。

样例输入

fighting

样例输出

fight

 

*/

 

 

 

 

 

 

//<<c++信息学奥赛>>第八章

/*

8.5.2挑战一下

1、短信计费

描述

用手机发短信,一行短信资费为0.1元,但限定一行短信

的内容在70个字以内(包括70个字)。如果你一次所发

送的短信超过了70个字,则会按照每70个字一条短信的限

制把它分割成多条短信发送。假设已经知道你当月所发送

短信的次数,以及每次短信的字数,试统计一下你当月短

信的总资费。

输入

第1行是整数n,表示当月发送短信的总次数,接着n行每行

一个整数,表示每次短信的字数。

输出

输出一行,当月短信总资费,单位为元,精确到小数点后1位。

样例输入

10

39  49  42  61  44  147  42  72  35  46

样例输出1.3

 

2、简单算术表达式求值

描述

两位正整数的简单算术运算(只考虑整数运算),算术运

算符如下:

+,如法运算。

-,减法运算。

*,乘法运算。

/,整除运算。

%,取余运算。

算术表达式的格式如下(运算符前后可能有空格):

运算数  运算符  运算数

请输出相应的结果。

输入

一行,算术表达式

输出

整型算术运算的结果(结果值不一定为两位数,可能多于

两位或少于两位)。

样例输入

32+64

样例输出

96

 

3、最匹配的矩阵

描述

给定一个mxn的矩阵A和rxs的矩阵B,其中0<r<=m,0<s<=n,A、

B所有元素的值都是小于100的正整数。求A中一个大小为

rxs的子矩阵C,使得B和C的对应元素差值的绝对值之和最

小,这时称C为最匹配矩阵。如果有多少个子矩阵同时满足

条件,选择子矩阵左上角元素行号小者,行号相同时,选

择列号小者。

输入

第1行是m和n,共2个整数,以一个空格分开。

第2行至第m+1行,每行有n个整数,表示A矩阵中的各行元

素,数与数之间以一个空格分开。

第m+2行为r和s这2个整数,以一个空格分开。

之后r行每行有s个整数,表示B矩阵中的各行元素,数与数

之间以一个空格分开。(1<=m<=100,1<=n<=100)

输出

输出矩阵C,一共r行,每行s个整数,整数之间以一个空格

分开。

样例输入

3  3

3  4  5

5  3  4

8  2  4

2  2

7  3

4  9

样例输出

4  5

3  4

 

4、统计单词数

描述

一般的文本编辑器都有查找单词的功能,该功能可以快速

定位特定单词在文章中的位置,有的还能统计出特定计出

特定单词在文章中出现的次数。

现在,请你编程实现这一功能,具体要求:给定一个单词,

请你输出它在给定的文章中出现的次数和第一次出现的位

置。注意:匹配单词时,不区分大小写,但要求完全匹配,

即给定单词必须与文章中的某一独立单词在不区分大小写

的情况下完全相同(参见样例1),如果给定单词仅是文章

中某一单词的一部分则不算匹配(参见样例2)。

输入

2行。第1行为一个字符串,其中只包含字母,表示给定单

词。第2行为一个字符串,其中只包含字母和空格,表示给

定的文章。

输出

只有一行,如果在文章中找到给定单词则输出2个整数,2个

整数之间用一个空格

隔开,分别表示单词在文章中出现的次数和第一次出现的位

置(即在文章中第一次出时,单词首字母在文章中的位置,

位置从0开始);如果单词在文章中没有出现,则直接输出-1。

样例输入1

To

to be or not to be is a question

样例输出1

2  0

样例输入2

to

Did the Ottoman Empire lose its power at that time

样例输出2

-1

 

5、图像旋转翻转变换

描述

给定m行n列的图像各像素点灰度值,对其依次进行一系列操作

后,求最终图像其中,可能的操作及对应字符有如下4种:

A.顺时针旋转90度。

B.逆时针旋转90度。

C.左右翻转。

D.上下翻转。

输入

第1行包含2个正整数m和n,表示图像的行数和列数,中间用单

个空格隔开。1<=m<=100,1<=n<=100。

接下来m行,每行n个整数,表示图像中每个像素点的灰点值,相

邻2个数之间用单个空格隔开。灰度值的范围为0-255。

接下来一行,包含由A、B、C、D组成的字符串s,表示需要按顺

序执行的操作序列。s的长度范围为1-100。

输出

m1 x n1的矩阵,矩阵中的元素为最终图像各像素点的灰度值。其

中m1表示最终图像的行数,n1表示最终图像的列数。相邻2个整数

之间用单个空格隔开。

样例输入

2  3

10  0  10

100  100  10

AC

样例输出

10  100

0  100

10  10

 

 

 

*/

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值