NOI题目
以熟练为主,以通透为重,让java语言更加的有趣且生动
拥有魔法消除bug
希望通过自己的努力在这里能够学到很多,也请大家多多指教!
展开
-
NOI的1.9.10找最大数序列
描述输入n行,每行不超过100个无符号整数,无符号数不超过4位。请输出最大整数以及最大整数所在的行号(行号从1开始)。如果该数据在多个行中出现,则按从小到大输出相应行号,行号之间以一个逗号分开。输入一行输入一个正整数n(n <= 30)。之后的n行,每行包含不超过100个无符号整数,整数之间以一个逗号分开。输出第一行:最大整数;第二行:最大整数所在的行编号,逗号间隔。样例输入...原创 2020-04-16 13:56:25 · 352 阅读 · 0 评论 -
NOI的1.9.8白细胞计数
描述医院采样了某临床病例治疗期间的白细胞数量样本n份,用于分析某种新抗生素对该病例的治疗效果。为了降低分析误差,要先从这n份样本中去除一个数值最大的 样本和一个数值最小的样本,然后将剩余n-2个有效样本的平均值作为分析指标。同时,为了观察该抗生素的疗效是否稳定,还要给出该平均值的误差,即所有有 效样本(即不包括已扣除的两个样本)与该平均值之差的绝对值的最大值。现在请你编写程序,根据提供的n个样...原创 2020-04-16 09:43:14 · 1861 阅读 · 0 评论 -
NOI的1.9.7不与最大数相同的数字之和
描述输出一个整数数列中不与最大数相同的数字之和。输入输入分为两行:第一行为N(N为接下来数的个数,N <= 100);第二行为N个整数,数与数之间以一个空格分开,每个整数的范围是-1000,000到1000,000。输出输出为N个数中除去最大数其余数字之和。样例输入31 2 3样例输出3分析:注意的地方是:最大值不止一个,分析的时候应该考虑多种情况解法:imp...原创 2020-04-16 08:46:43 · 563 阅读 · 0 评论 -
NOI的1.9.6笨小猴
描述笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。输入只有一行,是一个单词...原创 2020-04-15 23:07:54 · 324 阅读 · 0 评论 -
NOI的1.9.5最大值和最小值的差
描述输出一个整数序列中最大的数和最小的数的差。输入第一行为M,表示整数个数,整数个数不会大于10000;第二行为M个整数,以空格隔开,每个整数的绝对值不会大于10000。输出输出M个数中最大值和最小值的差。样例输入52 5 7 4 2样例输出5解法:import java.util.Scanner;public class Main { public static ...原创 2020-04-15 21:27:53 · 294 阅读 · 0 评论 -
NOI的1.9.4谁拿了最多奖学金
描述某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种,获取的条件各自不同:院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文的学生均可获得;五四奖学金,每人4000元,期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)的学生均可获得;成绩优秀奖,每人2000元,期末平均成...原创 2020-04-15 21:18:48 · 310 阅读 · 0 评论 -
NOI的1.9.3不高兴的津津
描述津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。输入包括七行数据,分别表示周...原创 2020-04-15 16:38:40 · 161 阅读 · 0 评论 -
NOI的1.9.2输出最高分数的学生姓名
描述输入学生的人数,然后再输入每位学生的分数和姓名,求获得最高分数的学生的姓名。输入第一行输入一个正整数N(N <= 100),表示学生人数。接着输入N行,每行格式如下:分数 姓名分数是一个非负整数,且小于等于100;姓名为一个连续的字符串,中间没有空格,长度不超过20。数据保证最高分只有一位同学。输出获得最高分数同学的姓名。样例输入587 lilei99 hanm...原创 2020-04-15 16:27:49 · 388 阅读 · 0 评论 -
NOI的1.9.1查找特定的值
描述在一个序列(下标从1开始)中查找一个给定的值,输出第一次出现的位置。输入第一行包含一个正整数n,表示序列中元素个数。1 <= n <= 10000。第二行包含n个整数,依次给出序列的每个元素,相邻两个整数之间用单个空格隔开。元素的绝对值不超过10000。第三行包含一个整数x,为需要查找的特定值。x的绝对值不超过10000。输出若序列中存在x,输出x第一次出现的下标;否...原创 2020-04-15 15:32:41 · 358 阅读 · 0 评论 -
NOI的1.8.24蛇形填充数组
描述用数字1,2,3,4,…,nn这n2个数蛇形填充规模为nn的方阵。蛇形填充方法为:对于每一条左下-右上的斜线,从左上到右下依次编号1,2,…,2n-1;按编号从小到大的顺序,将数字从小到大填入各条斜线,其中编号为奇数的从左下向右上填写,编号为偶数的从右上到左下填写。比如n=4时,方阵填充为如下形式:1 2 6 73 5 8 134 9 12 1410 11 15...原创 2020-04-06 15:49:20 · 280 阅读 · 0 评论 -
NOI的1.8.23二维数组回形遍历
描述给定一个row行col列的整数数组array,要求从array[0][0]元素开始,按回形从外向内顺时针顺序遍历整个数组。如图所示:输入输入的第一行上有两个整数,依次为row和col。余下有row行,每行包含col个整数,构成一个二维整数数组。(注:输入的row和col保证0 < row < 100, 0 < col < 100)输出按遍历顺序输出每个整...原创 2020-04-04 21:22:04 · 875 阅读 · 0 评论 -
NOI的1.8.22神奇的幻方
描述幻方是一个很神奇的N*N矩阵,它的每行、每列与对角线,加起来的数字和都是相同的。我们可以通过以下方法构建一个幻方。(阶数为奇数)1.第一个数字写在第一行的中间2.下一个数字,都写在上一个数字的右上方:a.如果该数字在第一行,则下一个数字写在最后一行,列数为该数字的右一列b.如果该数字在最后一列,则下一个数字写在第一列,行数为该数字的上一行c.如果该数字在右上角,或者该数字的右上方...原创 2020-03-31 22:50:17 · 297 阅读 · 0 评论 -
NOI的1.8.21二维数组右上左下遍历
描述给定一个row行col列的整数数组array,要求从array[0][0]元素开始,按从左上到右下的对角线顺序遍历整个数组。输入输入的第一行上有两个整数,依次为row和col。余下有row行,每行包含col个整数,构成一个二维整数数组。(注:输入的row和col保证0 < row < 100, 0 < col < 100)输出按遍历顺序输出每个整数。每个...原创 2020-03-31 16:34:23 · 615 阅读 · 0 评论 -
NOI的1.8.20反反复复
描述Mo和Larry发明了一种信息加密方法。他们首先决定好列数,然后将信息(只包含字母)从上往下依次填入各列,并在末尾补充一些随机字母使其成为一个完整的字母矩阵。例如,若信息是“There’s no place like home on a snowy night”并且有5列,Mo会写成:t o i o yh p k n ne l e a ir a h s ge c o n hs e...原创 2020-03-30 22:59:00 · 402 阅读 · 0 评论 -
NOI的1.8.19肿瘤检测
描述一张CT扫描的灰度图像可以用一个N*N(0 < N <= 100)的矩阵描述,矩阵上的每个点对应一个灰度值(整数),其取值范围是0-255。我们假设给定的图像中有且只有一个肿瘤。在图上监测肿瘤的方法如下:如果某个点对应的灰度值小于等于50,则这个点在肿瘤上,否则不在肿瘤上。我们把在肿瘤上的点的数目加起来,就得到了肿瘤在图上的面积。任何在肿瘤上的点,如果它是图像的边界或者它的上下左...原创 2020-03-30 17:11:50 · 289 阅读 · 0 评论 -
NOI的1.8.17最好的草
描述奶牛Bessie计划好好享受柔软的春季新草。新草分布在R行C列的牧场里。它想计算一下牧场中的草丛数量。在牧场地图中,每个草丛要么是单个“#”,要么是有公共边的相邻两个“#”。给定牧场地图,计算有多少个草丛。例如,考虑如下5行6列的牧场地图.#……#……#…#…##..#…这个牧场有5个草丛:一个在第一行,一个在第二列横跨了二、三行,一个在第三行,一个在第四行横跨了四、五列,最...原创 2020-03-26 14:50:22 · 324 阅读 · 0 评论 -
NOI的1.8.15细菌的繁殖与扩散
描述在边长为9的正方形培养皿中,正中心位置有m个细菌。假设细菌的寿命仅一天,但每天可繁殖10个后代,而且这10个后代,有两个分布在原来的单元格中,其余的均匀分布在其四周相邻的八个单元格中。求经过n(1≤n≤4)天后,细菌在培养皿中的分布情况。输入输入为两个整数,第一个整数m表示中心位置细菌的个数(2 ≤ m ≤ 30),第二个整数n表示经过的天数(1 ≤ n ≤ 4)。输出输出九行九列整...原创 2020-03-24 21:40:16 · 506 阅读 · 0 评论 -
NOI的1.8.14扫雷游戏地雷数计算
描述扫雷游戏是一款十分经典的单机小游戏。它的精髓在于,通过已翻开格子所提示的周围格地雷数,来判断未翻开格子里是否是地雷。现在给出n行m列的雷区中的地雷分布,要求计算出每个非地雷格的周围格地雷数。注:每个格子周围格有八个:上、下、左、右、左上、右上、左下、右下。输入第一行包含两个整数n和m,分别表示雷区的行数和列数。1 <= n <= 100, 1 <= m <= ...原创 2020-03-24 21:36:44 · 626 阅读 · 0 评论 -
NOI的1.8.13图像模糊处理
描述给定n行m列的图像各像素点的灰度值,要求用如下方法对其进行模糊化处理:四周最外侧的像素点灰度值不变;中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均(舍入到最接近的整数)。输入第一行包含两个整数n和m,表示图像包含像素点的行数和列数。1 <= n <= 100,1 <= m <= 100。接下来n行,每行m个整数,表示图像的每个像素点...原创 2020-03-23 22:37:05 · 258 阅读 · 0 评论 -
NOI的1.8.12变幻的矩阵
描述有一个N x N(N为奇数,且1 <= N <= 10)的矩阵,矩阵中的元素都是字符。这个矩阵可能会按照如下的几种变幻法则之一进行变幻(只会变幻一次)。现在给出一个原始的矩阵,和一个变幻后的矩阵,请编写一个程序,来判定原始矩阵是按照哪一种法则变幻为目标矩阵的。按照顺时针方向旋转90度;如:1 2 3 7 4 14 5 6 变幻为 8 5 27 8 9...原创 2020-03-15 23:01:18 · 797 阅读 · 3 评论 -
NOI的1.8.11图像旋转
描述输入一个n行m列的黑白图像,将它顺时针旋转90度后输出。输入第一行包含两个整数n和m,表示图像包含像素点的行数和列数。1 <= n <= 100,1 <= m <= 100。接下来n行,每行m个整数,表示图像的每个像素点灰度。相邻两个整数之间用单个空格隔开,每个元素均在0~255之间。输出m行,每行n个整数,为顺时针旋转90度后的图像。相邻两个整数之间用单个...原创 2020-03-13 22:10:55 · 258 阅读 · 0 评论 -
NOI的1.8.10矩阵转置
描述输入一个n行m列的矩阵A,输出它的转置AT。输入第一行包含两个整数n和m,表示矩阵A的行数和列数。1 <= n <= 100,1 <= m <= 100。接下来n行,每行m个整数,表示矩阵A的元素。相邻两个整数之间用单个空格隔开,每个元素均在1~1000之间。输出m行,每行n个整数,为矩阵A的转置。相邻两个整数之间用单个空格隔开。样例输入3 31 2 ...原创 2020-03-13 21:33:58 · 333 阅读 · 0 评论 -
NOI的1.8.9矩阵乘法
描述计算两个矩阵的乘法。nm阶的矩阵A乘以mk阶的矩阵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。输入第一行为n, m, k,表示A矩阵是n行m列,B矩阵是m行k列,n, m, k均小于100然后先后输入A和B两个矩阵,A矩阵n行m列,B矩阵m行k列,矩阵中每个元素的...原创 2020-03-13 21:23:41 · 283 阅读 · 0 评论 -
NOI的1.8.7矩阵归零消减序列和
描述给定一个nn的矩阵(3 <= n <= 100,元素的值都是非负整数)。通过(n-1)次实施下述过程,可把这个矩阵转换成一个11的矩阵。每次的过程如下:首先对矩阵进行行归零:即对每一行上的所有元素,都在其原来值的基础上减去该行上的最小值,保证相减后的值仍然是非负整数,且这一行上至少有一个元素的值为0。接着对矩阵进行列归零:即对每一列上的所有元素,都在其原来值的基础上减去该列上...原创 2020-03-13 16:45:02 · 555 阅读 · 0 评论 -
NOI的1.8.6图像相似度
描述给出两幅相同大小的黑白图像(用0-1矩阵)表示,求它们的相似度。说明:若两幅图像在相同位置上的像素点颜色相同,则称它们在该位置具有相同的像素点。两幅图像的相似度定义为相同像素点数占总像素点数的百分比。输入第一行包含两个整数m和n,表示图像的行数和列数,中间用单个空格隔开。1 <= m <= 100, 1 <= n <= 100。之后m行,每行n个整数0或1,表...原创 2020-03-01 10:57:00 · 247 阅读 · 0 评论 -
NOI的1.8.5计算鞍点
描述给定一个5*5的矩阵,每行只有一个最大值,每列只有一个最小值,寻找这个矩阵的鞍点。鞍点指的是矩阵中的一个元素,它是所在行的最大值,并且是所在列的最小值。例如:在下面的例子中(第4行第1列的元素就是鞍点,值为8 )。11 3 5 6 912 4 7 8 1010 5 6 9 118 6 4 7 215 10 11 20 25输入输入包含一个5行5列的矩阵输出如果存在鞍点,...原创 2020-03-01 10:35:31 · 1407 阅读 · 0 评论 -
NOI的1.8.4错误探测
描述给定n*n由0和1组成的矩阵,如果矩阵的每一行和每一列的1的数量都是偶数,则认为符合条件。你的任务就是检测矩阵是否符合条件,或者在仅改变一个矩阵元素的情况下能否符合条件。"改变矩阵元素"的操作定义为0变成1或者1变成0。输入输入n + 1行,第1行为矩阵的大小n(0 < n < 100),以下n行为矩阵的每一行的元素,元素之间以一个空格分开。输出如果矩阵符合条件,则输...原创 2020-02-29 20:16:08 · 394 阅读 · 0 评论 -
NOI的1.8.3计算矩阵边缘元素之和
描述输入一个整数矩阵,计算位于矩阵边缘的元素之和。所谓矩阵边缘的元素,就是第一行和最后一行的元素以及第一列和最后一列的元素。输入第一行分别为矩阵的行数m和列数n(m < 100,n < 100),两者之间以一个空格分开。接下来输入的m行数据中,每行包含n个整数,整数之间以一个空格分开。输出输出对应矩阵的边缘元素和样例输入3 33 4 13 7 12 0 1样例输...原创 2020-02-29 19:24:27 · 296 阅读 · 0 评论 -
NOI的1.8.2同行列对角线的格子
描述输入三个自然数N,i,j (1<=i<=N,1<=j<=N),输出在一个N*N格的棋盘中(行列均从1开始编号),与格子(i,j)同行、同列、同一对角线的所有格子的位置。如:n=4,i=2,j=3表示了棋盘中的第二行第三列的格子,如下图:当n=4,i=2,j=3时,输出的结果是:(2,1) (2,2) (2,3) (2,4) ...原创 2020-02-29 19:14:00 · 367 阅读 · 0 评论 -
NOI的1.8.1矩阵交换行
描述给定一个5*5的矩阵(数学上,一个r×c的矩阵是一个由r行c列元素排列成的矩形阵列),将第n行和第m行交换,输出交换后的结果。输入输入共6行,前5行为矩阵的每一行元素,元素与元素之间以一个空格分开。第6行包含两个整数m、n,以一个空格分开。(1 <= m,n <= 5)输出输出交换之后的矩阵,矩阵的每一行元素占一行,元素之间以一个空格分开。样例输入1 2 2 1 2...原创 2020-02-29 18:30:27 · 484 阅读 · 0 评论 -
NOI的1.7.34回文子串
描述给定一个字符串,输出所有长度至少为2的回文子串。回文子串即从左往右输出和从右往左输出结果是一样的字符串,比如:abba,cccdeedccc都是回文字符串。输入一个字符串,由字母或数字组成。长度500以内。输出输出所有的回文子串,每个子串一行。子串长度小的优先输出,若长度相等,则出现位置靠左的优先输出。样例输入123321125775165561样例输出331177...原创 2020-02-28 17:05:06 · 678 阅读 · 0 评论 -
NOI的1.7.33判断字符串是否为回文
描述输入一个字符串,输出该字符串是否回文。回文是指顺读和倒读都一样的字符串。输入输入为一行字符串(字符串中没有空白字符,字符串长度不超过100)。输出如果字符串是回文,输出yes;否则,输出no。样例输入abcdedcba样例输出yes解法:import java.util.Scanner;public class Main {public static void mai...原创 2020-02-28 16:42:59 · 331 阅读 · 0 评论 -
NOI的1.7.32行程长度编码
描述在数据压缩中,一个常用的途径是行程长度压缩。对于一个待压缩的字符串而言,我们可以依次记录每个字符及重复的次数。这种压缩,对于相邻数据重复较多的情况比较有效。 例如,如果待压缩串为"AAABBBBCBB",则压缩的结果是(A,3)(B,4)(C,1)(B,2)。当然,如果相邻字符重复情况较少,则压缩效率就较低。现要求根据输入的字符串,得到大小写不敏感压缩后的结果(即所有小写字母均视为相应的大...原创 2020-02-28 16:22:33 · 388 阅读 · 0 评论 -
NOI的1.7.31字符串p型编码
描述给定一个完全由数字字符(‘0’,‘1’,‘2’,…,‘9’)构成的字符串str,请写出str的p型编码串。例如:字符串122344111可被描述为"1个1、2个2、1个3、2个4、3个1",因此我们说122344111的p型编码串为1122132431;类似的道理,编码串101可以用来描述1111111111;00000000000可描述为"11个0",因此它的p型编码串即为110;1002...原创 2020-02-28 13:32:54 · 306 阅读 · 0 评论 -
NOI的1.7.30字符环
描述有两个由字符构成的环。请写一个程序,计算这两个字符环上最长连续公共字符串的长度。例如,字符串“ABCEFAGADEGKABUVKLM”的首尾连在一起,构成一个环;字符串“MADJKLUVKL”的首尾连在一起,构成一个另一个环;“UVKLMA”是这两个环的一个连续公共字符串。输入一行,包含两个字符串,分别对应一个字符环。这两个字符串之间用单个空格分开。字符串长度不超过255,且不包含空格等...原创 2020-02-28 11:04:23 · 520 阅读 · 0 评论 -
NOI的1.7.29ISBN号码
描述每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔之...原创 2020-02-27 14:43:35 · 290 阅读 · 0 评论 -
NOI的1.7.28单词倒排
描述编写程序,读入一行英文(只包含字母和空格,单词间以单个空格分隔),将所有单词的顺序倒排并输出,依然以单个空格分隔。输入输入为一个字符串(字符串长度至多为100)。输出输出为按要求排序后的字符串。样例输入I am a student样例输出student a am I解法:import java.util.Scanner;public class Main {publi...原创 2020-02-27 13:25:35 · 306 阅读 · 0 评论 -
NOI的1.7.27单词翻转
描述输入一个句子(一行),将句子中的每一个单词翻转后输出。输入只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。输出翻转每一个单词后的字符串,单词之间的空格需与原文一致。样例输入hello world样例输出olleh dlrow解法1:(考虑单词中间只有一个空格时)import java.util.Scanner;public class Main {pu...原创 2020-02-27 13:06:44 · 661 阅读 · 0 评论 -
NOI的1.7.26字符串最大跨距
描述有三个字符串S,S1,S2,其中,S长度不超过300,S1和S2的长度不超过10。想检测S1和S2是否同时在S中出现,且S1位于S2的左边,并在S中互不交叉(即,S1的右边界点在S2的左边界点的左侧)。计算满足上述条件的最大跨距(即,最大间隔距离:最右边的S2的起始点与最左边的S1的终止点之间的字符数目)。如果没有满足条件的S1,S2存在,则输出-1。例如,S = “abcd123ab88...原创 2020-02-27 10:02:16 · 610 阅读 · 0 评论 -
NOI的1.7.25最长最短单词
描述输入1行句子(不多于200个单词,每个单词长度不超过100),只包含字母、空格和逗号。单词由至少一个连续的字母构成,空格和逗号都是单词间的间隔。试输出第1个最长的单词和第1个最短单词。输入一行句子。输出两行输出:第1行,第一个最长的单词。第2行,第一个最短的单词。样例输入I am studying Programming language C in Peking Unive...原创 2020-02-26 16:29:06 · 1009 阅读 · 0 评论