![](https://img-blog.csdnimg.cn/86cedd395a7d4f63b38d8b483a03dd15.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
信息学奥赛一本通
《信息学奥赛一本通(C++版)》(科学技术文献出版社)OJ题目解答
StrawBerryTreea
退堂鼓表演大师
展开
-
信息学奥赛一本通(c++):1002:输出第二个整数
信息学奥赛一本通(c++):1002:输出第二个整数【题目描述】输入三个整数,整数之间由一个空格分隔,整数是32位有符号整数。把第二个输入的整数输出。【输入】只有一行,共三个整数,整数之间由一个空格分隔。整数是32位有符号整数。【输出】只有一行,一个整数,即输入的第二个整数。【输入样例】123 456 789【输出样例】456原创 2022-12-01 23:44:36 · 629 阅读 · 0 评论 -
信息学奥赛一本通(c++):1001:Hello,World
信息学奥赛一本通(c++):1001:Hello,World!【题目描述】编写一个能够输出“Hello,World!”的程序,这个程序常常作为一个初学者接触一门新的编程语言所写的第一个程序,也经常用来测试开发、编译环境是否能够正常工作。提示:“Hello,World!”中间没空格。原创 2022-12-01 23:39:29 · 485 阅读 · 0 评论 -
信息学奥赛一本通(c++):1181:整数奇偶排序
1181:整数奇偶排序【题目描述】给定10个整数的序列,要求对其重新排序。排序要求:1.奇数在前,偶数在后;2.奇数按从大到小排序;3.偶数按从小到大排序。【输入】输入一行,包含10个整数,彼此以一个空格分开,每个整数的范围是大于等于0,小于等于30000。【输出】按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空格分开。原创 2022-10-27 16:50:52 · 1926 阅读 · 2 评论 -
信息学奥赛一本通(c++):1402:Vigenère密码
信息学奥赛一本通(c++):1402:Vigenère密码1402:Vigenère密码【题目描述】6世纪法国外交家Blaise de Vigenère设计了一种多表密码加密算法——Vigenère密码。Vigenère密码的加密解密算法简单易用,且破译难度比较高,曾在美国南北战争中为南军所广泛使用。 在密码学中,我们称需要加密的信息为明文,用M表示;称加密后的信息为密文,用C表示;而密钥是一种原创 2022-11-11 16:00:00 · 1040 阅读 · 0 评论 -
信息学奥赛一本通(c++):1169:大整数减法
1169:大整数减法【题目描述】求两个大的正整数相减的差。【输入】共2行,第1行是被减数a,第2行是减数b(a > b)。每个大整数不超过200位,不会有多余的前导零。【输出】一行,即所求的差。原创 2022-10-22 12:19:01 · 1032 阅读 · 0 评论 -
信息学奥赛一本通(c++):1168:大整数加法
1168:大整数加法【题目描述】求两个不超过200位的非负整数的和。【输入】有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。【输出】一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。原创 2022-10-21 19:01:48 · 2338 阅读 · 0 评论 -
信息学奥赛一本通(c++):1405:质数的和与积
1405:质数的和与积【题目描述】两个质数的和是S,它们的积最大是多少?【输入】一个不大于10000的正整数S,为两个质数的和。【输出】一个整数,为两个质数的最大乘积。数据保证有解。原创 2022-10-19 18:25:41 · 973 阅读 · 0 评论 -
信息学奥赛一本通(c++):1157:哥德巴赫猜想
一、题目1157:哥德巴赫猜想【题目描述】哥德巴赫猜想的命题之一是:大于6 的偶数等于两个素数之和。编程将6~100所有偶数表示成两个素数之和。原创 2022-10-14 16:15:23 · 1751 阅读 · 0 评论 -
信息学奥赛一本通(c++):1336:【例3-1】找树根和孩子
1336:【例3-1】找树根和孩子【题目描述】给定一棵树,输出树的根root,孩子最多的结点max以及他的孩子。【输入】第一行:n(结点个数≤100),m(边数≤200)。以下m行:每行两个结点x和y,表示y是x的孩子(x,y≤1000)。【输出】第一行:树根:root;第二行:孩子最多的结点max;第三行:max的孩子(按编号由小到输出)。【输入样例】8 74 14 21 31 52 62 72 8【输出样例】4。原创 2022-10-02 20:31:55 · 1134 阅读 · 0 评论 -
信息学奥赛一本通(c++):1407:笨小猴
信息学奥赛一本通(c++):1407:笨小猴。【题目描述】笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn−minn是一个质数,那么笨小猴就认为原创 2022-08-20 08:14:02 · 1260 阅读 · 0 评论 -
信息学奥赛一本通(c++):1180:分数线划定
1180:分数线划定【题目描述】世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取mm名志愿者,则面试分数线为排名第m×150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。...原创 2022-08-17 09:47:14 · 926 阅读 · 2 评论 -
信息学奥赛一本通(c++):1839:【05NOIP提高组】谁拿了最多奖学金
信息学奥赛一本通(c++):1839:【05NOIP提高组】谁拿了最多奖学金【题目描述】某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种,获取的条件各自不同:1)院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文的学生均可获得;2)五四奖学金,每人4000元,期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)的学生均可获得;...原创 2022-08-16 11:15:17 · 1056 阅读 · 0 评论 -
信息学奥赛一本通(c++):1401:机器翻译
信息学奥赛一本通(c++):1401:机器翻译【题目描述】小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含...原创 2022-08-15 08:33:58 · 1496 阅读 · 0 评论 -
信息学奥赛一本通(c++):1107:校门外的树
信息学奥赛一本通(c++):1107:校门外的树【题目描述】某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。...原创 2022-08-13 08:00:00 · 628 阅读 · 0 评论 -
信息学奥赛一本通(c++):1111:不高兴的津津
信息学奥赛一本通(c++):1111:不高兴的津津【题目描述】津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。...原创 2022-08-12 08:00:00 · 1044 阅读 · 0 评论 -
信息学奥赛一本通(c++):1179:奖学金
信息学奥赛一本通(c++):1179:奖学金【题目描述】某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五名名学生的学号和总分。...原创 2022-08-11 09:16:59 · 1261 阅读 · 0 评论 -
信息学奥赛一本通(c++):1114:白细胞计数
信息学奥赛一本通(c++):1114:白细胞计数【题目描述】医院采样了某临床病例治疗期间的白细胞数量样本n份,用于分析某种新抗生素对该病例的治疗效果。为了降低分析误差,要先从这n份样本中去除一个数值最大的样本和一个数值最小的样本,然后将剩余n−2个有效样本的平均值作为分析指标。同时,为了观察该抗生素的疗效是否稳定,还要给出该平均值的误差,即所有有效样本(即不包括已扣除的两个样本)与该平均值之差的绝对值的最大值。...原创 2022-08-10 10:22:32 · 1842 阅读 · 1 评论 -
信息学奥赛一本通(c++):1128:图像模糊处理
信息学奥赛一本通(c++):1128:图像模糊处理一、题目 1128:图像模糊处理 【题目描述】给定n行m列的图像各像素点的灰度值,要求用如下方法对其进行模糊化处理:1.四周最外侧的像素点灰度值不变;2.中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均(舍入到最接近的整数)。...原创 2022-08-05 09:16:56 · 2265 阅读 · 0 评论 -
信息学奥赛一本通(c++):1127:图像旋转
信息学奥赛一本通(c++):1127:图像旋转一、题目 1127:图像旋转【题目描述】输入一个n行m列的黑白图像,将它顺时针旋转90度后输出。【输入】第一行包含两个整数n和m,表示图像包含像素点的行数和列数。1≤n≤100,1≤m≤100。接下来n行,每行m个整数,表示图像的每个像素点灰度。相邻两个整数之间用单个空格隔开,每个元素均在0∼255之间。...原创 2022-08-04 16:03:08 · 1231 阅读 · 0 评论 -
信息学奥赛一本通(c++):1118:铺地毯
信息学奥赛一本通(c++):1118:铺地毯 一、题目1118:铺地毯【题目描述】为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有n张地毯,编号从1到n。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。...原创 2022-08-02 10:15:49 · 1592 阅读 · 1 评论 -
信息学奥赛一本通(c++):1310:【例2.2】车厢重组
信息学奥赛一本通(c++):1310:【例2.2】车厢重组【题目描述】在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转。一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转180度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序。于是他就负责用这座桥将进站的车厢按车厢号从小到大排列。...原创 2022-08-01 11:01:08 · 1910 阅读 · 0 评论 -
信息学奥赛一本通(c++):1126:矩阵转置
信息学奥赛一本通(c++):1126:矩阵转置 一、题目 1126:矩阵转置【题目描述】输入一个n行m列的矩阵A,输出它的转置AT。【输入】第一行包含两个整数n和m,表示矩阵A的行数和列数(1原创 2022-07-31 09:27:42 · 1976 阅读 · 0 评论 -
信息学奥赛一本通(c++):1125:矩阵乘法
信息学奥赛一本通(c++):1125:矩阵乘法 一、题目 1125:矩阵乘法【题目描述】计算两个矩阵的乘法。n×m阶的矩阵A乘以m×k阶的矩阵B得到的矩阵C 是n×k阶的,且C[i][j] = A[i][0]×B[0][j] + A[i][1]×B[1][j] + …… +A[i][m-1]×B[m-1][j](C[i][j]表示C矩阵中第i行第j列元素)。...原创 2022-07-29 11:29:10 · 1525 阅读 · 1 评论 -
信息学奥赛一本通(c++):1124:矩阵加法
信息学奥赛一本通(c++):1124:矩阵加法一、题目 1124:矩阵加法【题目描述】输入两个n行m列的矩阵A和B,输出它们的和A+B。【输入】第一行包含两个整数n和m,表示矩阵的行数和列数(1≤n≤100,1≤m≤100)。接下来n行,每行m个整数,表示矩阵A的元素。接下来n行,每行m个整数,表示矩阵B的元素。相邻两个整数之间用单个空格隔开,每个元素均在1∼1000之间。...原创 2022-07-28 10:27:05 · 1941 阅读 · 0 评论 -
信息学奥赛一本通(c++):1123:图像相似度
1123图像相似度时间限制1000ms内存限制65536KB【题目描述】给出两幅相同大小的黑白图像(用0-1矩阵)表示,求它们的相似度。说明若两幅图像在相同位置上的像素点颜色相同,则称它们在该位置具有相同的像素点。两幅图像的相似度定义为相同像素点数占总像素点数的百分比。【输入】第一行包含两个整数m和n,表示图像的行数和列数,中间用单个空格隔开。之后m行,每行n个整数0或1,表示第一幅黑白图像上各像素点的颜色。相邻两个数之间用单个空格隔开。...原创 2022-07-27 15:44:40 · 1005 阅读 · 0 评论 -
信息学奥赛一本通(c++):1121:计算矩阵边缘元素之和
输入一个整数矩阵,计算位于矩阵边缘的元素之和。所谓矩阵边缘的元素,就是第一行和最后一行的元素以及第一列和最后一列的元素。原创 2022-07-26 16:55:36 · 1580 阅读 · 0 评论 -
信息学奥赛一本通(c++):1120:同行列对角线的格
1120:同行列对角线的格【题目描述】输入三个自然数n,i,j(1≤i≤n,1≤j≤n),输出在一个n×n格的棋盘中(行列均从1开始编号),与格子(i,j)同行、同列、同一对角线的所有格子的位置。原创 2022-07-25 11:39:33 · 4574 阅读 · 0 评论 -
信息学奥赛一本通(c++):1119:矩阵交换行
给定一个5×5的矩阵(数学上,一个r×c的矩阵是一个由r行c列元素排列成的矩形阵列),将第n行和第m行交换,输出交换后的结果。原创 2022-07-24 16:45:16 · 2104 阅读 · 0 评论 -
信息学奥赛一本通(c++):1123:图像相似度
给出两幅相同大小的黑白图像(用0-1矩阵)表示,求它们的相似度。说明:若两幅图像在相同位置上的像素点颜色相同,则称它们在该位置具有相同的像素点。两幅图像的相似度定义为相同像素点数占总像素点数的百分比。...原创 2022-07-23 10:32:17 · 646 阅读 · 2 评论 -
信息学奥赛一本通(c++):2037:【例5.4】约瑟夫问题
信息学奥赛一本通(c++):2037:【例5.4】约瑟夫问题【题目描述】N个人围成一圈,从第一个人开始报数,数到M的人出圈;再由下一个人开始报数,数到M的人出圈;…输出依次出圈的人的编号。思路 1.用while循环限制循环次数,每出圈一个人,人数减一,直到人数为零时循环结束。 2.定义一个数组全部置为0当做标记,当出圈时置为1。用数组的下标计数,每数到m则为出圈。每当数完一圈把数组下标再置1形成一个循环。...原创 2022-06-13 10:50:26 · 3922 阅读 · 0 评论 -
信息学奥赛一本通(c++):1413:确定进制
一、题目1413:确定进制时间限制: 1000 ms 内存限制: 65536 KB【题目描述】6×9=42对于十进制来说是错误的,但是对于13进制来说是正确的。即, 6(13)× 9(13)= 42(13), 而 42(13)=4×131+2×130=54(10)。你的任务是写一段程序,读入三个整数p、q和 r,然后确定一个进制 B(2<=B<=40) 使得 p × q = r。 如果 B 有很多选择, 输出最小的一个。例如:p=11, q=11, r=1...原创 2022-04-30 15:06:33 · 1152 阅读 · 0 评论 -
信息学奥赛一本通(c++):2036:【例5.3】开关门
一、题目2036:【例5.3】开关门时间限制: 1000 ms 内存限制: 65536 KB【题目描述】宾馆里有n(2≤n≤1000)个房间,从1∼n编了号。第一个服务员把所有的房间门都打开了,第二个服务员把所有编号是2的倍数的房间“相反处理”,第三个服务员把所有编号是3的倍数的房间作“相反处理”…,以后每个服务员都是如此。当第n个服务员来过后,哪几扇门是打开的。(所谓“相反处理”是:原来开着的门关上,原来关上的门打开。)【输入】房间数n。【输出】...原创 2022-04-24 16:11:48 · 5028 阅读 · 1 评论 -
信息学奥赛一本通(c++):2035:【例5.2】平移数据
一、题目2035:【例5.2】平移数据时间限制: 1000 ms 内存限制: 65536 KB【题目描述】将a数组中第一个元素移到数组末尾,其余数据依次往前平移一个位置。【输入】第一行为数组a的元素个数;第二行为n个小于1000的正整数。【输出】平移后的数组元素,每个数用一个空格隔开。【输入样例】101 2 3 4 5 6 7 8 9 10【输出样例】2 3 4 5 6 7 8 9 10 1二、思路...原创 2022-04-23 11:35:39 · 4886 阅读 · 0 评论 -
信息学奥赛一本通(c++):2034:【例5.1】反序输出
一、题目2034:【例5.1】反序输出时间限制: 1000 ms 内存限制: 65536 KB【题目描述】输入n个数,要求程序按输入时的逆序把这n个数打印出来,已知整数不超过100个。也就是说,按输入相反顺序打印这n个数。【输入】输入一行共有n个数,每个数之间用空格隔开。【输出】如题要求:一行,共有n个数,每个数之间用一个空格隔开。【输入样例】1 7 3 4 5【输出样例】5 4 3 7 1二、思路 ...原创 2022-04-22 09:21:25 · 4454 阅读 · 1 评论 -
信息学奥赛一本通(c++):1100:金币
一、题目1100:金币时间限制: 1000 ms 内存限制: 65536 KB【题目描述】国王将金币作为工资,发放给忠诚的骑士。第1天,骑士收到一枚金币;之后两天(第2天和第3天)里,每天收到两枚金币;之后三天(第4、5、6天)里,每天收到三枚金币;之后四天(第7、8、9、10天)里,每天收到四枚金币……这种工资发放模式会一直这样延续下去:当连续n天每天收到n枚金币后,骑士会在之后的连续n+1天里,每天收到n+1枚金币(n为任意正整数)。你需要编写一个程序,确定从第一天开...原创 2022-04-21 09:09:49 · 2193 阅读 · 0 评论 -
信息学奥赛一本通(c++):2027:【例4.13】三角形
一、题目2027:【例4.13】三角形时间限制: 1000 ms 内存限制: 65536 KB【题目描述】对于给定的自然数n(n<20),在屏幕上输出仅由“*”构成的n行的直角三角形。【输入】输入n。【输出】题述三角形。【输入样例】5【输出样例】***************二、思路 双层for循环,内层输出第j行有j个星号,外层控制行数三、代码#include &...原创 2022-04-21 09:01:41 · 3671 阅读 · 0 评论 -
信息学奥赛一本通(c++):2026:【例4.12】阶乘和
一、题目2026:【例4.12】阶乘和时间限制: 1000 ms 内存限制: 65536 KB【题目描述】求S=1!+2!+3!+....+n!【输入】输入正整数n。【输出】输出s。【输入样例】3【输出样例】9【提示】【数据范围】对于所有数据:1≤n≤10。二、思路 双层for循环 内层求第n个数的阶乘 外层求n个阶乘的和三、代码#include <b...原创 2022-04-21 08:57:18 · 4381 阅读 · 0 评论 -
信息学奥赛一本通(c++):2024:【例4.10】末两位数
一、题目2024:【例4.10】末两位数时间限制: 1000 ms 内存限制: 65536 KB【题目描述】求n个1992的乘积的末两位数是多少?【输入】输入n。【输出】如题述的末两位数。【输入样例】3【输出样例】88【提示】【数据范围】对于所有数据:n<2000。二、思路 最简单的思路肯定是直接求1992的n次方然后取后两位,但是当n次方过大时肯定会溢出。因为题目...原创 2022-04-18 20:26:28 · 3929 阅读 · 0 评论 -
信息学奥赛一本通(c++):2022:【例4.7】最小n值
一、题目2022:【例4.7】最小n值时间限制: 1000 ms 内存限制: 65536 KB【题目描述】编一程序求满足不等式1+1/2+1/3…+1/n>=m的最小n值。其中,n,m为正整数。【输入】输入m。【输出】输出n。【输入样例】3【输出样例】11【提示】【数据范围】对于所有数据:m<=11。二、思路 for循环求1/n并累加 判断大小。三、...原创 2022-04-18 20:18:12 · 4359 阅读 · 0 评论 -
信息学奥赛一本通(c++):2021:【例4.6】最大公约数
一、题目2021:【例4.6】最大公约数时间限制: 1000 ms 内存限制: 65536 KB【题目描述】求两个正整数m,n的最大公约数。【输入】输入m,n。【输出】m,n的最大公约数。【输入样例】4 6【输出样例】2【提示】【数据范围】对于全部数据:m,n<4000000。二、思路 1.最好想的方法: for循环暴力穷举 m,n任选一个数 每次减一 知道能被两者...原创 2022-04-15 08:27:41 · 5499 阅读 · 1 评论