![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
信息学奥赛一本通解析
文章平均质量分 51
信息学奥赛一本通解析 持续更新中~
昵称格式不正确
本人三年码龄初中生,刚开始写博文,请大家家多多见谅,关于单片机和物联网的内容也多有涉猎,可以私信我一起讨论。最近因为学业原因只能在周末更新了,抱歉。
展开
-
2022:【例4.7】最小n值
本题的目的是找到一个最小的正整数n,使得1 + 1/2 + 1/3 + ... + 1/n >= m。首先,我们定义一个整型变量i来作为循环的计数器,从1开始递增。这样,我们就可以在循环中每次将1/i加到s上,并递增i的值。然后,我们进入一个while循环,该循环会一直执行,直到累加和s大于或等于m。在循环的每一次迭代中,我们都将1/i加到s上,并将i递增1。最后,当循环结束时,s的值已经大于或等于m,而此时的i值是我们需要的n+1(因为我们在循环的最后一次迭代中递增了i的值)。对于所有数据:m≤11。原创 2024-04-21 16:38:22 · 309 阅读 · 0 评论 -
2021:【例4.6】最大公约数
这是一种非常经典的算法,其原理基于这样一个事实:两个整数的最大公约数与其中较小的那个数和两数的差(大数减小数)的最大公约数相等。如果r不为0,说明n不是m的约数,我们需要继续计算。此时,我们将n的值赋给m,将r的值赋给n,然后再次计算m除以n的余数r。代码中,我们首先定义了三个整型变量m、n和r,用于存储输入的两个数以及它们的余数。此算法的时间复杂度是O(log(min(m, n))),非常高效,适用于求解大规模数据的最大公约数问题。当r为0时,说明我们找到了m和n的最大公约数,它就是此时的n的值。原创 2024-04-21 16:32:12 · 427 阅读 · 0 评论 -
1084:幂的末尾
从高位到低位输出幂的末三位数字,中间无分隔符。若幂本身不足三位,在前面补零。时间限制: 1000 ms 内存限制: 65536 KB。提交数: 68812 通过数: 39987。幂ab的末3位数是多少?原创 2023-11-19 19:26:33 · 626 阅读 · 0 评论 -
1083:计算星期几
两个正整数a,b,中间用单个空格隔开。时间限制: 1000 ms 内存限制: 65536 KB。提交数: 93487 通过数: 41474。假设今天是星期日,那么过ab天之后是星期几?一个字符串,代表过ab天之后是星期几。1083:计算星期几。原创 2023-11-19 19:17:57 · 282 阅读 · 0 评论 -
1082:求小数的某一位
三个正整数a,b,n相邻两个数之间用单个空格隔开。时间限制: 1000 ms 内存限制: 65536 KB。提交数: 79102 通过数: 39588。分数ab化为小数后,小数点后第n位的数字是多少?1082:求小数的某一位。原创 2023-11-19 19:13:44 · 332 阅读 · 0 评论 -
1081:分苹果
把一堆苹果分给n个小朋友,要使每个人都能拿到苹果,而且每个人拿到的苹果数都不同的话,这堆苹果至少应该有多少个?一个不大于1000的正整数n,代表小朋友人数。一个整数,表示满足条件的最少苹果个数。原创 2023-09-24 17:22:46 · 184 阅读 · 0 评论 -
1080:余数相同问题
已知三个正整数a,b,c。现有一个大于1的整数x,将其作为除数分别除a,b,c,得到的余数相同。一行,三个不大于1000000的正整数a,b,c,两个整数之间用一个空格隔开。时间限制: 1000 ms 内存限制: 65536 KB。请问满足上述条件的x的最小值是多少?提交数: 64572 通过数: 42705。一个整数,即满足条件的x的最小值。1080:余数相同问题。原创 2023-09-24 17:18:18 · 445 阅读 · 0 评论 -
1079:计算分数加减表达式的值
时间限制: 1000 ms 内存限制: 65536 KB。提交数: 50372 通过数: 36454。输出一个实数,为表达式的值,保留到小数点后四位。(1原创 2023-09-24 17:10:29 · 128 阅读 · 0 评论 -
1078:求分数序列和
其中qi+1=qi+pi, pi+1=qi,p1=1,q1=2。比如这个序列前6项分别是。时间限制: 1000 ms 内存限制: 65536 KB。输出有一行,包含一个浮点数,表示分数序列前n项的和,精确到小数点后4位。提交数: 52791 通过数: 36910。输入有一行,包含一个正整数n(n≤30)。求这个分数序列的前n项之和。1078:求分数序列和。原创 2023-08-29 14:40:07 · 148 阅读 · 0 评论 -
1077:统计满足条件的4位数
给定若干个四位数,求出其中满足以下条件的数的个数:个位数上的数字减去千位数上的数字,再减去百位数上的数字,再减去十位数上的数字的结果大于零。输入为两行,第一行为四位数的个数n,第二行为n个的四位数。时间限制: 1000 ms 内存限制: 65536 KB。输出为一行,包含一个整数,表示满足条件的四位数的个数。提交数: 68818 通过数: 47273。1077:统计满足条件的4位数。原创 2023-08-29 14:34:22 · 371 阅读 · 0 评论 -
1076:正常血压
监护室每小时测量一次病人的血压,若收缩压在90-140之间并且舒张压在60-90之间(包含端点值)则称之为正常,现给出某病人若干次测量的血压值,计算病人保持正常血压的最长小时数。第一行为一个正整数n(n原创 2023-08-28 20:23:50 · 188 阅读 · 0 评论 -
1075:药房管理
对药品的管理是其中的一项重要内容。假设对于任意一种药品,每天开始工作时的库存总量已知,并且一天之内不会通过进货的方式增加。每天会有很多病人前来取药,每个病人希望取走不同数量的药品。如果病人需要的数量超过了当时的库存量,药房会拒绝该病人的请求。计算机可以很好地辅助医院管理医生信息、病人信息、药品信息等海量数据,使工作人员能够从这些机械的工作中解放出来,将更多精力投入真正的医疗过程中,从而极大地提高了医院整体的工作效率。第三行共有n个数,分别记录了每个病人希望取走的药品数量(按照时间先后的顺序)。原创 2023-08-28 20:16:45 · 66 阅读 · 0 评论 -
1074:津津的储蓄计划
因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于100元或恰好100元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。其中,x用于存储每个月津津的预算,n用于记录津津存的整百的钱的数量,t用于记录每个月剩余的钱的数量,f用于表示是否出现了钱不够用的情况。每个月的月初妈妈给津津300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。如果t小于0,说明这个月的钱不够用,输出-X,其中X表示出现这种情况的第一个月,并结束程序。原创 2023-08-28 20:13:51 · 80 阅读 · 0 评论 -
1073:救援
在直角坐标系的原点是大本营,救生船每次从大本营出发,救了人之后将人送回大本营。救生船每次从大本营出发,以速度50 米/分钟驶向下一个屋顶,达到一个屋顶后,救下其上的所有人,每人上船1分钟,船原路返回,达到大本营,每人下船0.5分钟。接下来依次有n 行输入,每一行上包含两个表示屋顶相对于大本营的平面坐标位置的实数(单位是米)、一个表示人数的整数。救生船从大本营出发,营救若干屋顶上的人回到大本营,屋顶数目以及每个屋顶的坐标和人数都将由输入决定,求出所有人都到达大本营并登陆所用的时间。原创 2023-08-26 16:54:46 · 48 阅读 · 0 评论 -
1072:鸡尾酒疗法
假设鸡尾酒疗法的有效率为x,新疗法的有效率为y,如果y-x大于5%,则效果更好,如果x-y大于5%,则效果更差,否则称为效果差不多。下面给出n组临床对照实验,其中第一组采用鸡尾酒疗法,其他n-1组为各种不同的改进疗法。其余n行每行两个整数,第一个整数是临床实验的总病例数(小于等于10000),第二个疗效有效的病例数。这n行数据中,第一行为鸡尾酒疗法的数据,其余各行为各种改进疗法的数据。有n-1行输出,分别表示对应改进疗法的效果:如果效果更好,输出better;如果效果更差,输出worse;原创 2023-08-26 16:16:31 · 161 阅读 · 0 评论 -
1071:菲波那契数
菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数k,要求菲波那契数列中第k个数是多少。时间限制: 1000 ms 内存限制: 65536 KB。输出一行,包含一个正整数,表示菲波那契数列中第k个数的大小。提交数: 125645 通过数: 66138。输入一行,包含一个正整数k。(1 ≤ k ≤ 46)1071:菲波那契数。原创 2023-08-25 18:57:25 · 217 阅读 · 0 评论 -
1070:人口增长
输出最后的人口数,以亿为单位,保留到小数点后四位。我国现有x亿人口,按照每年0.1%的增长速度,n年后将有多少人?时间限制: 1000 ms 内存限制: 65536 KB。一行,包含两个整数x和n,分别是人口基数和年数,以单个空格分隔。提交数: 79122 通过数: 54805。原创 2023-08-25 18:50:03 · 405 阅读 · 0 评论 -
1069:乘方计算
给出一个整数a和一个正整数n(−1000000≤a≤1000000,1≤n≤10000),求乘方an,即乘方结果。最终结果的绝对值不超过10000001000000。一行,包含两个整数a和n。一个整数,即乘方结果。题目保证最终结果的绝对值不超过10000001000000。时间限制: 1000 ms 内存限制: 65536 KB。提交数: 89124 通过数: 60718。原创 2023-08-24 19:16:26 · 453 阅读 · 0 评论 -
1068:与指定数字相同的数的个数
输出一个整数序列中与指定数字相同的数的个数。输入包含2行:第1行为N和m,表示整数序列的长度(N原创 2023-08-24 19:12:18 · 565 阅读 · 0 评论 -
1067:整数的个数
给定k(1原创 2023-08-23 15:05:30 · 430 阅读 · 0 评论 -
1066:满足条件的数累加
将正整数m和n之间(包括m和n)能17整除的数累加,其中,0原创 2023-08-23 15:02:04 · 252 阅读 · 0 评论 -
1065:奇数求和
计算非负整数m到n(包括m和n)之间的所有奇数的和,其中,m 不大于 n,且n不大于300。例如 m=3,n=12, 其和则为:3+5+7+9+11=35。输出一行,包含一个整数,表示m 到 n(包括m 和 n)之间的所有奇数的和。时间限制: 1000 ms 内存限制: 65536 KB。两个数 m 和 n,两个数以一个空格分开,其中 0≤m≤n≤300。提交数: 106676 通过数: 68667。原创 2023-08-19 14:44:26 · 258 阅读 · 0 评论 -
1064:奥运奖牌计数
输入第1行是A国参与决赛项目的天数n,其后n行,每一行是该国某一天获得的金、银、铜牌数目。输出4个整数,为A国所获得的金、银、铜牌总数及总奖牌数。输入n+1行,第1行是A国参与决赛项目的天数n,其后n行,每一行是该国某一天获得的金、银、铜牌数目,以一个空格分开。输出1行,包括4个整数,为A国所获得的金、银、铜牌总数及总奖牌数,以一个空格分开。时间限制: 1000 ms 内存限制: 65536 KB。提交数: 97192 通过数: 66149。1064:奥运奖牌计数。原创 2023-08-19 14:39:19 · 181 阅读 · 0 评论 -
1063:最大跨度值
一共2行,第一行为序列的个数n(1原创 2023-08-18 11:43:00 · 129 阅读 · 0 评论 -
1062:最高的分数
输入两行,第一行为整数n(1原创 2023-08-18 11:39:20 · 510 阅读 · 0 评论 -
1061:求整数的和与均值
输出一行,先输出和,再输出平均值(保留到小数点后5位),两个数间用单个空格分隔。时间限制: 1000 ms 内存限制: 65536 KB。第2~n+1行每行包含1个整数。每个整数的绝对值均不超过10000。读入n(1≤n≤10000)个整数,求它们的和与均值。提交数: 137146 通过数: 68608。输入第一行是一个整数n,表示有n个整数。1061:求整数的和与均值。原创 2023-08-16 18:14:45 · 275 阅读 · 0 评论 -
1060:均值
输入有两行,第一行包含一个整数n(n小于100),代表样本容量;第二行包含n个绝对值不超过1000的浮点数,代表各个样本数据。时间限制: 1000 ms 内存限制: 65536 KB。给出一组样本数据,包含n个浮点数,计算其均值,精确到小数点后4位。输出一行,包含一个浮点数,表示均值,精确到小数点后4位。提交数: 114485 通过数: 70949。原创 2023-08-16 18:10:11 · 316 阅读 · 0 评论 -
1059:求平均年龄
第一行有一个整数n(1原创 2023-08-16 18:06:12 · 162 阅读 · 0 评论 -
2019:【例4.4】求阶乘
时间限制: 1000 ms 内存限制: 65536 KB。提交数: 104386 通过数: 41104。=1×2×...×n。2019:【例4.4】求阶乘。对于所有数据,1≤n≤20。利用for循环求n!原创 2023-08-16 17:39:07 · 475 阅读 · 0 评论 -
2018:【例4.3】输出奇偶数之和
时间限制: 1000 ms 内存限制: 65536 KB。利用for循环,分别输出1∼n之间的所有奇数的和、偶数的和。输出为一行,两个数(用一个空格隔开),偶数之和与奇数之和。提交数: 68546 通过数: 43106。2018:【例4.3】输出奇偶数之和。对于所有数据,1≤n≤100。原创 2023-08-15 12:13:39 · 672 阅读 · 0 评论 -
2017:【例4.2】输出偶数
时间限制: 1000 ms 内存限制: 65536 KB。提交数: 72884 通过数: 46353。按照由小到大的顺序,输出1∼n之间的所有偶数。输出为一行,各个偶数之间用一个空格隔开。2017:【例4.2】输出偶数。对于所有数据,1≤n≤100。原创 2023-08-14 16:21:42 · 509 阅读 · 0 评论 -
2016:【例4.1】for循环求和
时间限制: 1000 ms 内存限制: 65536 KB。计算输出1+2+3+...+n的和。提交数: 84098 通过数: 52608。2016:【例4.1】for循环求和。对于100%的数据,1≤n≤100。原创 2023-08-14 15:37:40 · 402 阅读 · 0 评论 -
1058:求一元二次方程
输入一行,包含三个浮点数a,b,c(它们之间以一个空格分开),分别表示方程ax2+bx+c=0的系数。若两个实根不等,在满足根小者在前的原则,则输出形式为:“x1=...;时间限制: 1000 ms 内存限制: 65536 KB。所有输出部分要求精确到小数点后5位,数字、符号之间没有空格。提交数: 139639 通过数: 29197。的根,其中a不等于0。结果要求精确到小数点后5位。若两个实根相等,则输出形式为:“x1=x2=..;1058:求一元二次方程。输出一行,表示方程的解。原创 2023-08-14 15:09:25 · 253 阅读 · 0 评论 -
1057:简单计算器
一个最简单的计算器,支持+, -, *, / 四种运算。2. 如果出现无效的操作符(即不为 +, -, *, / 之一),则输出:Invalid operator!2.如果出现无效的操作符(即不为 +, -, *, / 之一),则输出:Invalid operator!输入只有一行,共有三个参数,其中第1、2个参数为整数,第3个参数为操作符(+,-,*,/)。1. 如果出现除数为0的情况,则输出:Divided by zero!1.如果出现除数为0的情况,则输出:Divided by zero!原创 2023-08-14 15:02:13 · 223 阅读 · 0 评论 -
1056:点和正方形的关系
有一个正方形,四个角的坐标(x,y)分别是(1,-1),(1,1),(-1,-1),(-1,1),x是横轴,y是纵轴。写一个程序,判断一个给定的点是否在这个正方形内(包括正方形边界)。如果点在正方形内,则输出yes,否则输出no。时间限制: 1000 ms 内存限制: 65536 KB。输入一行,包括两个整数x、y,以一个空格分开,表示坐标(x,y)。输出一行,如果点在正方形内,则输出yes,否则输出no。提交数: 65107 通过数: 43680。1056:点和正方形的关系。原创 2023-08-14 14:58:44 · 53 阅读 · 0 评论 -
1055:判断闰年
时间限制: 1000 ms 内存限制: 65536 KB。判断某年是否是闰年。如果公元a年是闰年输出Y,否则输出N。输入只有一行,包含一个整数a(0 < a < 3000)。提交数: 138083 通过数: 61793。一行,如果公元a年是闰年输出Y,否则输出N。原创 2023-08-13 13:14:53 · 159 阅读 · 0 评论 -
1054:三角形判断
给定三个正整数,分别表示三条线段的长度,判断这三条线段能否构成一个三角形。如果能构成三角形,则输出“yes”,否则输出“no”。输入共一行,包含三个正整数,分别表示三条线段的长度,数与数之间以一个空格分开。时间限制: 1000 ms 内存限制: 65536 KB。如果能构成三角形,则输出“yes” ,否则输出“no”。提交数: 94535 通过数: 54926。1054:三角形判断。原创 2023-08-13 13:08:16 · 299 阅读 · 0 评论 -
1053:最大数输出
时间限制: 1000 ms 内存限制: 65536 KB。输入三个整数,数与数之间以一个空格分开。输出一个整数,即最大的整数。输入为一行,包含三个整数,数与数之间以一个空格分开。提交数: 81829 通过数: 58101。输出一行,包含一个整数,即最大的整数。1053:最大数输出。原创 2023-08-13 13:06:05 · 57 阅读 · 0 评论 -
1052:计算邮资
根据邮件的重量和用户是否选择加急计算邮费。计算规则:重量在1000克以内(包括1000克), 基本费8元。超过1000克的部分,每500克加收超重费4元,不足500克部分按500克计算;如果用户选择加急,多收5元。输入一行,包含整数和一个字符,以一个空格分开,分别表示重量(单位为克)和是否加急。如果字符是n,说明不加急。时间限制: 1000 ms 内存限制: 65536 KB。提交数: 108366 通过数: 52740。输出一行,包含一个整数,表示邮费。原创 2023-08-13 13:02:28 · 172 阅读 · 0 评论 -
1051:分段函数
编写程序,计算下列分段函数y=f(x)的值。结果保留到小数点后三位。输出 N对应的分段函数值:f(N))。结果保留到小数点后三位。一个浮点数N(0≤N原创 2023-08-13 13:02:53 · 260 阅读 · 0 评论