信息学奥赛一本通题目精解
骑兔看夕阳
君之佳作,吾看甚欢,今谢君不吝共享,让吾窥得其中之妙,言近而旨远,词浅而意深,虽发语已殚,含义未尽,使人读者,忘表而知里,耐人寻味!不经感叹——此文只应天上有,人间能得几回阅?亦请君能不吝赐教,为我文指点一二!
展开
-
信息学奥赛一本通1272 【例9.16】分组背包
一个旅行者有一个最多能装V公斤的背包,现在有n件物品,它们的重量分别是W1,W2,...,WnW1,W2,...,Wn,它们的价值分别为C1,C2,...,CnC1,C2,...,Cn。这些物品被划分为若干组,每组中的物品互相冲突,最多选一件。第一行:三个整数,V(背包容量,V≤200),N(物品数量,N≤30)和T(最大组号,T≤10);第2..N+1行:每行三个整数Wi,Ci,PWi,Ci,P,表示每个物品的重量,价值,所属组号。仅一行,一个数,表示最大总价值。原创 2022-10-02 14:41:33 · 174 阅读 · 0 评论 -
信息学奥赛一本通1272【例9.16】分组背包
一个旅行者有一个最多能装V公斤的背包,现在有n件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为C1,C2,...,Cn。这些物品被划分为若干组,每组中的物品互相冲突,最多选一件。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。第一行:三个整数,V(背包容量,V≤200),N(物品数量,N≤30)和T(最大组号,T≤10);第2..N+1行:每行三个整数Wi,Ci,P,表示每个物品的重量,价值,所属组号。仅一行,一个数,表示最大总价值。...原创 2022-08-15 13:31:00 · 346 阅读 · 0 评论 -
信息学奥赛一本通 1249 Lake Counting
题意有一块N×M的土地,雨后积起了水,有水标记为‘W’,干燥为‘.’。八连通的积水被认为是连接在一起的。请求出院子里共有多少水洼?第一行为N,M(1≤N,M≤110)。下面为N*M的土地示意图。一行,共有的水洼数。...原创 2022-07-25 13:56:36 · 840 阅读 · 0 评论 -
信息学奥赛一本通1245 不重复的输出数
输入n个数,从小到大将它们输出,重复的数只输出一次。保证不同的数不超过500个。一行,从小到大不重复地输出这些数,相邻两个数之间用单个空格隔开。第一行是一个整数n。1≤n≤100000。之后n行,每行一个整数。整数大小在int范围内。...原创 2022-07-23 19:26:17 · 363 阅读 · 0 评论 -
信息学奥赛一本通1244 和为给定数
若存在和为m的数对,输出两个整数,小的在前,大的在后,中间用单个空格隔开。若有多个数对满足条件,选择数对中较小的数更小的。若找不到符合要求的数对,输出一行No。第三行是一个整数m(0≤m≤230)m(0≤m≤230),表示需要得到的和。第一行是整数n(0...原创 2022-07-23 11:17:05 · 275 阅读 · 0 评论 -
信息学奥赛一本通 1226 装箱问题
【题目描述】一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为1×1,2×2,3×3,4×4,5×5,6×6。这些产品通常使用一个6×6×h的长方体包裹包装然后邮寄给客户。因为邮费很贵,所以工厂要想方设法的减小每个订单运送时的包裹数量。他们很需要有一个好的程序帮他们解决这个问题从而节省费用。现在这个程序由你来设计。【输入】输入包括几行,每一行代表一个订单。每个订单里的一行包括六个整数,中间用空格隔开,分别为1×1至6×6这六种产品的数量。输入将以6个0组成原创 2022-07-07 19:47:18 · 516 阅读 · 0 评论 -
信息学奥赛一本通1220
【题目描述】单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如beast和astonish,如果接成一条龙则变为beastonish,另外相邻的两部分不能存在包含关系,例如at和atide间不能相连。【输入】输入的第一行为一个单独的整数n(n≤20)表示单词数,以下n行每行有一个单词(只含有大写或小写字母,长度不超过20),输入的最后一行为一个单原创 2022-07-01 19:29:30 · 173 阅读 · 0 评论 -
信息学奥赛一本通1319 排队接水
有nn个人在一个水龙头前排队接水,假如每个人接水的时间为TiTi,请编程找出这nn个人排队的一种顺序,使得nn个人的平均等待时间最小。共两行,第一行为n(1≤n≤1000)n(1≤n≤1000);第二行分别表示第11个人到第nn个人每人的接水时间T1,T2,…,TnT1,T2,…,Tn,每个数据之间有11个空格。有两行,第一行为一种排队顺序,即11到nn的一种排列;第二行为这种排列方案下的平均等待时间(输出结果精确到小数点后两位)。10 56 12 1 99 1000 234 33 55 9原创 2022-07-01 19:25:06 · 176 阅读 · 0 评论 -
1219:马走日
马在中国象棋以日字形规则移动。请编写一段程序,给定n×m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点。第一行为整数T(T < 10),表示测试数据组数。每一组测试数据包含一行,为四个整数,分别为棋盘的大小以及初始位置坐标n,m,x,y。(0≤x≤n-1,0≤y≤m-1, m < 10, n < 10)。每组测试数据包含一行,为一个整数,表示马能遍历棋盘的途径总数,0为无法遍历一次。...原创 2022-06-30 13:34:33 · 151 阅读 · 0 评论 -
信息学奥赛一本通1215 迷宫
一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n×n的格点组成,每个格点只有22种状态,和,前者表示可以通行后者表示不能通行。同时当Extense处在某个格点时,他只能移动到东南西北(或者说上下左右)四个方向之一的相邻格点上,Extense想要从点A走到点B,问在不走出迷宫的情况下能不能办到。如果起点或者终点有一个不能通行(为),则看成无法办到。第1行是测试数据的组数k,后面跟着k组输入。每组测试数据的第1行是一个正整数n(1≤n≤100),表示迷宫的规模是n×n的。接下来是一个原创 2022-06-23 14:28:07 · 389 阅读 · 0 评论 -
信息学奥赛一本通1212 LETTERS
给出一个roe×col的大写字母矩阵,一开始的位置为左上角,你可以向上下左右四个方向移动,并且不能移向曾经经过的字母。问最多可以经过几个字母。第一行,输入字母矩阵行数RR和列数SS,1≤R,S≤20。接着输出R行S列字母矩阵。最多能走过的不同字母的个数。3 6HFDFFBAJHGDHDGAGEH【输出样例】6【思路】这道题的思路还是比较简单的哈,就是普通的深搜,代码如下,看不懂的我在旁边有注释,可以看看,懂得当我没说!【代码】......原创 2022-06-21 13:09:51 · 524 阅读 · 0 评论 -
信息学奥赛一本通1342:【例4-1】最短路径问题
这道题目可真复杂,烦烦烦烦烦烦烦烦烦原创 2022-02-09 14:00:38 · 362 阅读 · 2 评论 -
信息学奥赛一本通1374 铲雪车(snow)
啊八八八八八八原创 2022-02-08 14:10:46 · 703 阅读 · 0 评论 -
信息学奥赛一本通1372 小明的账单
烦烦烦烦烦烦烦烦烦烦烦烦烦烦烦原创 2022-01-26 14:48:31 · 602 阅读 · 0 评论 -
信息学奥赛一本通 1369 合并果子
【题目描述】在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n−1n−1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为11,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费原创 2022-01-24 19:11:33 · 358 阅读 · 0 评论 -
信息学奥赛一本通1368 对称二叉树
【题目描述】如果二叉树的左右子树的结构是对称的,即两棵子树皆为空,或者皆不空,则称该二叉树是对称的。编程判断给定的二叉树是否对称.例:如下图中的二叉树T1是对称的,T2是不对称的。二叉树用顺序结构给出,若读到#则为空,二叉树T1=ABCDE,T2=ABCD#E,如果二叉树是对称的,输出“Yes”,反之输出“No”。【输入】二叉树用顺序结构给出,若读到#则为空。【输出】如果二叉树是对称的,输出“Yes”,反之输出“No”。【输入样例】ABCDE【输出样例】Y原创 2022-01-24 14:34:48 · 303 阅读 · 0 评论 -
信息学奥赛一本通1364 二叉树遍历
题目描述】树和二叉树基本上都有先序、中序、后序、按层遍历等遍历顺序,给定中序和其它一种遍历的序列就可以确定一棵二叉树的结构。假定一棵二叉树一个结点用一个字符描述,现在给出中序和按层遍历的字符串,求该树的先序遍历字符串。【输入】两行,每行是由字母组成的字符串(一行的每个字符都是唯一的),分别表示二叉树的中序遍历和按层遍历的序列。【输出】一行,表示二叉树的先序序列。【输入样例】DBEACABCDE【输出样例】ABDEC思路:此题的搜索思路呢,有点原创 2022-01-20 13:33:39 · 362 阅读 · 0 评论 -
信息学奥赛一本通1339 【例3-4】求后序遍历
【题目描述】输入一棵二叉树的先序和中序遍历序列,输出其后序遍历序列。【输入】共两行,第一行一个字符串,表示树的先序遍历,第二行一个字符串,表示树的中序遍历。树的结点一律用小写字母表示。【输出】一行,表示树的后序遍历序列。【输入样例】abdecdbeac【输出样例】debca思路:略(我坏吧,哈哈哈哈哈哈),怎么简单还要看思路吗?#include<iostream>#include<cstdio>#include.原创 2022-01-12 13:38:43 · 302 阅读 · 0 评论 -
信息学奥赛一本通 1336 【例3-1】找树根和son(附含解题思路)
题目描述】给定一棵树,输出树的根rootroot,孩子最多的结点maxmax以及他的孩子。【输入】第一行:nn(结点个数≤100≤100),mm(边数≤200≤200)。以下mm行:每行两个结点xx和yy,表示yy是xx的孩子(x,y≤1000x,y≤1000)。【输出】第一行:树根:rootroot;第二行:孩子最多的结点maxmax;第三行:maxmax的孩子(按编号由小到输出)。【输入样例】8 74 14 21 31 52 62 72 8【输原创 2022-01-11 14:10:41 · 564 阅读 · 1 评论 -
信息学奥赛一本通 1271【例9.15】潜水员
【题目描述】潜水员为了潜水要使用特殊的装备。他有一个带2种气体的气缸:一个为氧气,一个为氮气。让潜水员下潜的深度需要各种的数量的氧和氮。潜水员有一定数量的气缸。每个气缸都有重量和气体容量。潜水员为了完成他的工作需要特定数量的氧和氮。他完成工作所需气缸的总重的最低限度的是多少?例如:潜水员有5个气缸。每行三个数字为:氧,氮的(升)量和气缸的重量:3 36 12010 25 1295 50 2501 45 1304 20 119如果潜水员需要5升的氧和60升的氮则总重最小为24原创 2022-01-08 19:35:22 · 482 阅读 · 10 评论 -
信息学奥赛一本通 1011 甲流疫情死亡率
博主最近在参加博客之星评选,快来帮我投一票吧!地址:2021年「博客之星」参赛博主:QinZhen20100224-CSDN社区【题目描述】甲流并不可怕,在中国,它的死亡率并不是很高。请根据截止2009年12月22日各省报告的甲流确诊数和死亡数,计算甲流在各省的死亡率。【输入】输入仅一行,有两个整数,第一个为确诊数,第二个为死亡数。【输出】输出仅一行,甲流死亡率,以百分数形式输出,精确到小数点后3位。【输入样例】10433 60【输出样例】0.575%#in原创 2022-01-02 11:15:30 · 355 阅读 · 0 评论 -
信息学奥赛一本通 2067 【例2.5】 圆
博主最近在参加博客之星评选,快来帮我投一票吧!地址:2021年「博客之星」参赛博主:QinZhen20100224-CSDN社区【题目描述】输入半径r,输出圆的直径、周长、面积,数与数之间以一个空格分开,每个数保留小数点后4位。【输入】输入半径。【输出】如题述。数与数之间以一个空格分开。【输入样例】1.0【输出样例】2.0000 6.2832 3.1416#include<iostream>using namespace std;int ma原创 2022-01-02 11:13:29 · 703 阅读 · 0 评论 -
信息学奥赛一本通 1010 计算分数的浮点数值
博主最近在参加博客之星评选,快来帮我投一票吧!地址:2021年「博客之星」参赛博主:QinZhen20100224-CSDN社区【题目描述】两个整数aa和bb分别作为分子和分母,既分数abab,求它的浮点数值(双精度浮点数,保留小数点后99位)。【输入】输入仅一行,包括两个整数aa和bb。【输出】输出也仅一行,分数abab的浮点数值(双精度浮点数,保留小数点后99位)。【输入样例】5 7【输出样例】0.714285714#include<.原创 2022-01-02 11:07:33 · 292 阅读 · 0 评论 -
信息学奥赛一本通 1009 带余除法
博主最近在参加博客之星评选,快来帮我投一票吧!地址:2021年「博客之星」参赛博主:QinZhen20100224-CSDN社区【题目描述】给定被除数和除数,求整数商及余数。此题中请使用默认的整除和取余运算,无需对结果进行任何特殊处理。【输入】一行,包含两个整数,依次为被除数和除数(除数非零),中间用一个空格隔开。【输出】一行,包含两个整数,依次为整数商和余数,中间用一个空格隔开。【输入样例】10 3【输出样例】3 1#include<io原创 2022-01-02 11:06:08 · 330 阅读 · 0 评论 -
信息学奥赛一本通 1008 计算 (a+b)/c 问题
博主最近在参加博客之星评选,快来帮我投一票吧!地址:2021年「博客之星」参赛博主:QinZhen20100224-CSDN社区【题目描述】给定33个整数a、b、ca、b、c,计算表达式a+bca+bc的值。【输入】输入仅一行,包括三个整数a、b、ca、b、c, 数与数之间以一个空格分开。(-10,000<a,b,c<10,000-10,000<a,b,c<10,000,cc不等于00)【输出】输出一行,即表达式的值。【输入样例】.原创 2022-01-02 11:04:46 · 193 阅读 · 0 评论 -
信息学奥赛一本通 1007 (a+b)*c 问题
博主最近在参加博客之星评选,快来帮我投一票吧!地址:2021年「博客之星」参赛博主:QinZhen20100224-CSDN社区【题目描述】给定33个整数a、b、ca、b、c,计算表达式(a+b)×c(a+b)×c的值。【输入】输入仅一行,包括三个整数a、b、ca、b、c, 数与数之间以一个空格分开。(-10,000<a,b,c<10,000)(-10,000<a,b,c<10,000)【输出】输出一行,即表达式的值。【输入样例】2 3 5【输出原创 2022-01-02 11:03:17 · 426 阅读 · 0 评论 -
信息学奥赛一本通 1006 A+B问题
博主最近在参加博客之星评选,快来帮我投一票吧!地址:2021年「博客之星」参赛博主:QinZhen20100224-CSDN社区【题目描述】大部分的在线题库,都会将A+B问题作为第一题,以帮助新手熟悉平台的使用方法。A+B问题的题目描述如下:给定两个整数A和B,输出A+B的值。保证A、B及结果均在整型范围内。现在请你解决这一问题。【输入】一行,包含两个整数A,B,中间用单个空格隔开。A和B均在整型范围内。【输出】一个整数,即A+B的值。保证结果在整型范围内。【输入原创 2022-01-02 11:01:53 · 282 阅读 · 0 评论 -
信息学奥赛一本通 2066【例2.3】买图书
博主最近在参加博客之星评选,快来帮我投一票吧!地址:2021年「博客之星」参赛博主:QinZhen20100224-CSDN社区【题目描述】已知小明有n元,他买了一本书,这本书原价为m元,现在打8折出售。求小明还剩多少钱(保留2位小数)。【输入】输入n,m。【输出】小明还剩多少钱(保留2位小数)。【输入样例】100 100【输出样例】20.00#include<iostream>#include<cstdio>using name原创 2022-01-02 11:00:15 · 585 阅读 · 0 评论 -
方法烦烦烦
方法原创 2021-12-31 12:21:16 · 242 阅读 · 0 评论 -
信息学奥赛一本通1187 统计字符数
【题目描述】给定一个由a-z这26个字符组成的字符串,统计其中哪个字符出现的次数最多。【输入】输入包含一行,一个字符串,长度不超过1000。【输出】输出一行,包括出现次数最多的字符和该字符出现的次数,中间以一个空格分开。如果有多个字符出现的次数相同且最多,那么输出ascii码最小的那一个字符。【输入样例】abbccc【输出样例】c 3#include<iostream>#include<cstdio>#include<cstri原创 2021-12-31 12:20:54 · 292 阅读 · 0 评论 -
信息学奥赛一本通 1186 出现次数超过一半的数字
题目描述】给出一个含有n(0 < n <= 1000)个整数的数组,请找出其中出现次数超过一半的数。数组中的数大于-50且小于50。【输入】第一行包含一个整数n,表示数组大小;第二行包含n个整数,分别是数组中的每个元素,相邻两个元素之间用单个空格隔开。【输出】如果存在这样的数,输出这个数;否则输出no。【输入样例】31 2 2【输出样例】2#include<iostream>using namespace std;i原创 2021-12-31 12:19:43 · 679 阅读 · 0 评论 -
信息学奥赛一本通 1185 单词排序
【题目描述】输入一行单词序列,相邻单词之间由1个或多个空格间隔,请按照字典序输出这些单词,要求重复的单词只输出一次。(区分大小写)【输入】一行单词序列,最少1个单词,最多100个单词,每个单词长度不超过50,单词之间用至少1个空格间隔。数据不含除字母、空格外的其他字符。【输出】按字典序输出这些单词,重复的单词只输出一次。【输入样例】She wants to go to Peking University to study Chinese【输出样例】C原创 2021-12-31 12:18:36 · 902 阅读 · 3 评论 -
信息学奥赛一本通1184 明明的随机数
【题目描述】明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。【输入】有2行,第1行为1个正整数,表示所生成的随机数的个数:N;第2行有N个用空格隔开的正整数,为所产生的随机数。【输出】也是2行,第1行为1个正整数M,表示不相同原创 2021-12-31 12:17:26 · 437 阅读 · 0 评论 -
信息学奥赛一本通1183 病人排队
【题目描述】病人登记看病,编写一个程序,将登记的病人按照以下原则排出看病的先后顺序:1.老年人(年龄 >= 60岁)比非老年人优先看病。2.老年人按年龄从大到小的顺序看病,年龄相同的按登记的先后顺序排序。3.非老年人按登记的先后顺序看病。【输入】第1行,输入一个小于100的正整数,表示病人的个数;后面按照病人登记的先后顺序,每行输入一个病人的信息,包括:一个长度小于10的字符串表示病人的ID(每个病人的ID各不相同且只含数字和字母),一个整数表示病人的年龄,中间用单个原创 2021-12-31 12:16:20 · 211 阅读 · 0 评论 -
信息学奥赛一本通1182 合影效果
【题目描述】小云和朋友们去爬香山,为美丽的景色所陶醉,想合影留念。如果他们站成一排,男生全部在左(从拍照者的角度),并按照从矮到高的顺序从左到右排,女生全部在右,并按照从高到矮的顺序从左到右排,请问他们合影的效果是什么样的(所有人的身高都不同)?【输入】第一行是人数n(2 <= n <= 40,且至少有1个男生和1个女生)。后面紧跟n行,每行输入一个人的性别(男male或女female)和身高(浮点数,单位米),两个数据之间以空格分隔。【输出】n个浮点数,模拟站好队后,拍原创 2021-12-31 12:14:21 · 487 阅读 · 0 评论 -
信息学奥赛一本通 1181 整数奇偶排序
【题目描述】给定10个整数的序列,要求对其重新排序。排序要求:1.奇数在前,偶数在后;2.奇数按从大到小排序;3.偶数按从小到大排序。【输入】输入一行,包含10个整数,彼此以一个空格分开,每个整数的范围是大于等于0,小于等于30000。【输出】按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空格分开。【输入样例】4 7 3 13 11 12 0 47 34 98【输出样例】47 13 11 7 3 0 4 12 34 98#inclu原创 2021-12-31 12:12:42 · 563 阅读 · 0 评论 -
信息学奥赛一本通1180 分数线判定
【题目描述】世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%150%划定,即如果计划录取mm名志愿者,则面试分数线为排名第m×150%m×150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。【输入】第一行,两个整数n,m(5≤n≤500原创 2021-12-31 12:11:18 · 274 阅读 · 0 评论 -
信息学奥赛一本通1179 奖学金
【题目描述】某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前55名学生发奖学金。期末,每个学生都有33门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。任务:先根据输入的33门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五名名学生的学号和总分。注意,在前55名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。例原创 2021-12-31 12:09:30 · 198 阅读 · 0 评论 -
信息学奥赛一本通 1178 成绩排序
【题目描述】给出班里某门课程的成绩单,请你按成绩从高到低对成绩单排序输出,如果有相同分数则名字字典序小的在前。【输入】第一行为n (0 < n < 20),表示班里的学生数目;接下来的n行,每行为每个学生的名字和他的成绩, 中间用单个空格隔开。名字只包含字母且长度不超过20,成绩为一个不大于100的非负整数。【输出】把成绩单按分数从高到低的顺序进行排序并输出,每行包含名字和分数两项,之间有一个空格。【输入样例】4Kitty 80Hanmeimei原创 2021-12-30 21:04:57 · 362 阅读 · 1 评论 -
信息学奥赛一本通1177 技术单增序列
博主最近在评选博客之星,来帮我投票吧!2021年「博客之星」参赛博主:QinZhen20100224-CSDN社区【题目描述】给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。【输入】第1行为 N;第2行为 N 个正整数,其间用空格间隔。【输出】增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。【输入样例】101 3 2 6 5 4 9 8 7 10【输出样例】1,3,5,7,9#include<i原创 2021-12-30 21:02:14 · 181 阅读 · 0 评论