信息学奥赛一本通
Alex_McAvoy
想要成为渔夫的猎手
展开
-
【信息学奥赛一本通】题解目录
OJ网站:点击这里【语言及算法基础篇】第一部分:C++语言第一章:C++语言入门 Hello,World!(信息学奥赛一本通-T1001):点击这里 输出第二个整数(信息学奥赛一本通-T1002):点击这里 对齐输出(信息学奥赛一本通-T1003):点击这里 字符三角形(信息学奥赛一本通-T1004):点击这里 地球人口承载力估计(信息学奥赛一本通-T1005):点击...原创 2018-02-14 00:58:54 · 596348 阅读 · 121 评论 -
山峰和山谷(信息学奥赛一本通-T1454)
【题目描述】给定一个 n×n 的网格状地图,每个方格 (i,j)有一个高度 wij 。如果两个方格有公共顶点,则它们是相邻的。定义山峰和山谷如下:均由地图上的一个连通块组成;所有方格高度都相同;周围的方格(即不属于山峰或山谷但与山峰或山谷相邻的格子)高度均大于山谷的高度,或小于山峰的高度。求地图内山峰和山谷的数量。特别地,如果整个地图方格的高度均相同,则整个地图既是一...原创 2019-09-13 21:22:45 · 3393 阅读 · 0 评论 -
移动玩具(信息学奥赛一本通-T1453)
【题目描述】在一个 4×4 的方框内摆放了若干个相同的玩具,某人想将这些玩具重新摆放成为他心中理想的状态,规定移动时只能将玩具向上下左右四个方向移动,并且移动的位置不能有玩具,请你用最少的移动次数将初始的玩具状态移动到目标状态。【输入】前四行表示玩具的初始状态,每行 4 个数字 1 或 0,1 表示方格中放置了玩具,0 表示没有放置玩具。接着是一个空行。接下来四行表示玩具的目...原创 2019-09-13 21:19:49 · 1591 阅读 · 0 评论 -
Keyboarding(信息学奥赛一本通-T1452)
【题目描述】给定一个 r 行 c 列的在电视上的“虚拟键盘”,通过「上,下,左,右,选择」共 555 个控制键,你可以移动电视屏幕上的光标来打印文本。一开始,光标在键盘的左上角,每次按方向键,光标总是跳到下一个在该方向上与当前位置不同的字符,若不存在则不移动。每次按选择键,则将光标所在位置的字符打印出来。现在求打印给定文本(要在结尾打印换行符)的最少按键次数。【输入】第一行输入 ...原创 2019-09-13 21:16:08 · 2768 阅读 · 0 评论 -
棋盘游戏(信息学奥赛一本通-T1451)
【题目描述】在一个 4×4 的棋盘上有 8 个黑棋和 8 个白棋,当且仅当两个格子有公共边,这两个格子上的棋是相邻的。移动棋子的规则是交换相邻两个棋子。给出一个初始棋盘和一个最终棋盘,请找出一个最短的移动序列使初始棋盘变为最终棋盘。【输入】前四行,每行 4 个数字(1 或者 0 ),描述了初始棋盘;接着是一个空行;第六到第九行,每行 4 个数字(1 或者 0),描述了最终...原创 2019-09-13 21:25:21 · 2323 阅读 · 0 评论 -
Knight Moves(信息学奥赛一本通-T1450)
【题目描述】编写一个程序,计算一个骑士从棋盘上的一个格子到另一个格子所需的最小步数。骑士一步可以移动到的位置由下图给出。【输入】第一行给出骑士的数量 n。在接下来的 3n 行中,每 3 行描述了一个骑士。其中,第一行一个整数 L 表示棋盘的大小,整个棋盘大小为 L×L;第二行和第三行分别包含一对整数 (x,y),表示骑士的起始点和终点。假设对于每一个骑士,起始点和终点均合...原创 2019-09-13 21:13:33 · 1683 阅读 · 0 评论 -
魔板(信息学奥赛一本通-T1449)
【题目描述】在成功地发明了魔方之后,拉比克先生发明了它的二维版本,称作魔板。这是一张有8个大小相同的格子的魔板:1 2 3 48 7 6 5我们知道魔板的每一个方格都有一种颜色。这8种颜色用前8个正整数来表示。可以用颜色的序列来表示一种魔板状态,规定从魔板的左上角开始,沿顺时针方向依次取出整数,构成一个颜色序列。对于上图的魔板状态,我们用序列(1,2,3,4,5,6,7,8)来表示...原创 2019-09-02 19:59:51 · 1623 阅读 · 1 评论 -
电路维修(信息学奥赛一本通-T1448)
【题目描述】译自 BalticOI 2011 Day1 T3「Switch the Lamp On」有一种正方形的电路元件,在它的两组相对顶点中,有一组会用导线连接起来,另一组则不会。有 N×M 个这样的元件,你想将其排列成 N 行 M 列放在电路板上。电路板的左上角连接电源,右下角连接灯泡。试求:至少要旋转多少个正方形元件才能让电源与灯泡连通,若无解则输出 NO SOLUTIO...原创 2019-09-02 19:09:43 · 2463 阅读 · 1 评论 -
Hello,World!(信息学奥赛一本通-T1001)
【题目描述】编写一个能够输出“Hello,World!”的程序,这个程序常常作为一个初学者接触一门新的编程语言所写的第一个程序,也经常用来测试开发、编译环境是否能够正常工作。提示:“Hello,World!”中间没空格。【输入】无【输出】Hello,World!【输入样例】(无)【输出样例】Hello,World!【源程序】#include&...原创 2018-01-30 19:05:15 · 33126 阅读 · 4 评论 -
输出第二个整数(信息学奥赛一本通-T1002)
【题目描述】输入三个整数,整数之间由一个空格分隔,整数是32位有符号整数。把第二个输入的整数输出。【输入】只有一行,共三个整数,整数之间由一个空格分隔。整数是32位有符号整数。【输出】只有一行,一个整数,即输入的第二个整数。【输入样例】123 456 789【输出样例】456【源程序】#include<iostream> using ...原创 2018-01-30 19:05:28 · 18448 阅读 · 1 评论 -
对齐输出(信息学奥赛一本通-T1003)
【题目描述】读入三个整数,按每个整数占8个字符的宽度,右对齐输出它们,按照格式要求依次输出三个整数,之间以一个空格分开。【输入】只有一行,按照格式要求依次输出三个整数,之间以一个空格分开。【输出】只有一行,一个整数,即输入的第二个整数。【输入样例】123456789 0 -1【输出样例】123456789 0 -1【源程序】#in...原创 2018-01-30 19:05:39 · 23860 阅读 · 1 评论 -
字符三角形(信息学奥赛一本通-T1004)
【题目描述】给定一个字符,用它构造一个底边长5个字符,高3个字符的等腰字符三角形。【输入】只有一行,包含一个字符。【输出】该字符构成的等腰三角形,底边长5个字符,高3个字符。【输入样例】*【输出样例】 *********【源程序】#include<iostream> using namespace std; int main...原创 2018-01-30 19:05:47 · 21974 阅读 · 3 评论 -
A+B问题(信息学奥赛一本通-T1006)
【题目描述】求两个整数的和。【输入】只有一行,两个用空格隔开的整数。【输出】两个整数的和。【输入样例】1 2【输出样例】3【源程序】#include<iostream>using namespace std;int main(){ int a,b; int sum; cin>>a>>...原创 2018-01-30 19:06:47 · 14722 阅读 · 2 评论 -
计算(a+b)*c的值(信息学奥赛一本通-T1007)
【题目描述】给定3个整数a、b、c,计算表达式(a+b)*c的值。【输入】只有一行,包括三个整数a、b、c, 数与数之间以一个空格分开。(-10,000<a,b,c<10,000)【输出】只有一行,即表达式的值。【输入样例】2 3 5【输出样例】25【源程序】#include<iostream>using namespac...原创 2018-01-30 19:06:59 · 9848 阅读 · 3 评论 -
计算(a+b)/c的值(信息学奥赛一本通-T1008)
【题目描述】给定3个整数a、b、c,计算表达式(a+b)/c的的值。【输入】只有一行,包括三个整数a、b、c, 数与数之间以一个空格分开。(-10,000<a,b,c<10,000)【输出】只有一行,即表达式的值。【输入样例】1 1 3【输出样例】0【源程序】#include<iostream>using namespac...原创 2018-01-30 19:07:06 · 6959 阅读 · 2 评论 -
带余除法(信息学奥赛一本通-T1009)
【题目描述】给定被除数和除数,求整数商及余数。此题中请使用默认的整除和取余运算,无需对结果进行任何特殊处理。【输入】一行,包含两个整数,依次为被除数和除数(除数非零),中间用一个空格隔开。【输出】一行,包含两个整数,依次为整数商和余数,中间用一个空格隔开。【输入样例】10 3【输出样例】3 1【源程序】#include<iostream>...原创 2018-01-30 19:07:13 · 12080 阅读 · 1 评论 -
计算分数的浮点数值(信息学奥赛一本通-T1010)
【题目描述】两个整数 a 和 b 分别作为分子和分母,既分数a/b,求它的浮点数值(双精度浮点数,保留小数点后9位)。【输入】输入仅一行,包括两个整数a和b。【输出】输出也仅一行,分数 a/b 的浮点数值(双精度浮点数,保留小数点后9位)。【输入样例】5 7【输出样例】0.714285714【源程序】#include<iostream>...原创 2018-01-30 19:07:20 · 15154 阅读 · 3 评论 -
甲流疫情死亡率(信息学奥赛一本通-T1011)
【题目描述】甲流并不可怕,在中国,它的死亡率并不是很高。请根据截止2009年12月22日各省报告的甲流确诊数和死亡数,计算甲流在各省的死亡率。【输入】输入仅一行,有两个整数,第一个为确诊数,第二个为死亡数。【输出】输出仅一行,甲流死亡率,以百分数形式输出,精确到小数点后3位。【输入样例】10433 60【输出样例】0.575%【源程序】#inclu...原创 2018-01-31 19:35:48 · 19620 阅读 · 2 评论 -
计算多项式的值(信息学奥赛一本通-T1012)
【题目描述】对于多项式f(x)=ax3+bx2+cx+d和给定的a,b,c,d,x,计算f(x)的值,保留到小数点后7位。【输入】输入仅一行,包含5个实数,分别是x,及参数a、b、c、d的值,每个数都是绝对值不超过100的双精度浮点数。数与数之间以一个空格分开。【输出】输出一个实数,即f(x)的值,保留到小数点后7位。【输入样例】2.31 1.2 2 2 3【输出...原创 2018-01-31 19:36:06 · 16511 阅读 · 1 评论 -
温度表达转化(信息学奥赛一本通-T1013)
【题目描述】利用公式C = 5*(F-32)/9(其中C表示摄氏温度,F表示华氏温度)进行计算转化,输入华氏温度f,输出摄氏温度c,要求精确到小数点后5位。【输入】输入一行,包含一个实数f,表示华氏温度。(f >= -459.67)【输出】输出一行,包含一个实数,表示对应的摄氏温度,要求精确到小数点后5位。【输入样例】41【输出样例】5.00000...原创 2018-01-31 19:36:17 · 10888 阅读 · 3 评论 -
与圆相关的计算(信息学奥赛一本通-T1014)
【题目描述】给出圆的半径,求圆的直径、周长和面积。输入圆的半径实数r,输出圆的直径、周长、面积,每个数保留小数点后4位。圆周率取值为3.14159。【输入】输入包含一个实数r(0 < r ≤ 10,000),表示圆的半径。【输出】输出一行,包含三个数,分别表示圆的直径、周长、面积,数与数之间以一个空格分开,每个数保留小数点后4位。【输入样例】3.0【输出样例...原创 2018-01-31 19:36:28 · 18543 阅读 · 2 评论 -
计算并联电阻的阻值(信息学奥赛一本通-T1015)
【题目描述】对于阻值为r1和r2的电阻,其并联电阻阻值公式计算见下,输入两个电阻阻抗大小,浮点型。输出并联之后的阻抗大小,结果保留小数点后2位。【输入】两个电阻阻抗大小,浮点型,以一个空格分开。【输出】并联之后的阻抗大小,结果保留小数点后2位。【输入样例】1 2【输出样例】0.67【源程序】#include<iostream>#i...原创 2018-01-31 19:36:37 · 11558 阅读 · 1 评论 -
整型数据类型存储空间大小(信息学奥赛一本通-T1016)
【题目描述】分别定义int,short类型的变量各一个,并依次输出它们的存储空间大小(单位:字节)。【输入】(无)【输出】一行,两个整数,分别是两个变量的存储空间大小,用一个空格隔开。【输入样例】(无)【输出样例】(无)【源程序】#include<iostream>using namespace std;int main(){ ...原创 2018-01-31 19:37:04 · 12319 阅读 · 1 评论 -
浮点型数据类型存储空间大小(信息学奥赛一本通-T1017)
【题目描述】分别定义float,double类型的变量各一个,并依次输出它们的存储空间大小(单位:字节)。【输入】(无)【输出】一行,两个整数,分别是两个变量的存储空间大小,用一个空格隔开。【输入样例】(无)【输出样例】(无)【源程序】#include<iostream>using namespace std;int main()...原创 2018-01-31 19:37:15 · 8963 阅读 · 1 评论 -
其他数据类型存储空间大小(信息学奥赛一本通-T1018)
【题目描述】分别定义bool,char类型的变量各一个,并依次输出它们的存储空间大小(单位:字节)。【输入】(无)【输出】一行,两个整数,分别是两个变量的存储空间大小,用一个空格隔开。【输入样例】(无)【输出样例】(无)【源程序】#include<iostream>using namespace std;int main(){ ...原创 2018-01-31 19:37:31 · 7120 阅读 · 1 评论 -
浮点数向零舍入(信息学奥赛一本通-T1019)
【题目描述】输入一个单精度浮点数,将其向零舍入到整数。说明:向零舍入的含义是,正数向下舍入,负数向上舍入。提示:可以使用强制类型转换来实现。【输入】一个单精度浮点数。【输出】一个整数,即向零舍入到整数的结果。【输入样例】2.3【输出样例】2【源程序】#include<iostream>using namespace std;int ...原创 2018-01-31 19:38:33 · 13983 阅读 · 2 评论 -
打印ASCII码(信息学奥赛一本通-T1020)
【题目描述】输入一个除空格以外的可见字符(保证在函数scanf中可使用格式说明符%c读入),输出其ASCII码。【输入】一个除空格以外的可见字符。【输出】一个十进制整数,即该字符的ASCII码。【输入样例】A【输出样例】65【源程序】#include<iostream>using namespace std;int main(){...原创 2018-01-31 19:38:42 · 11991 阅读 · 1 评论 -
打印字符(信息学奥赛一本通-T1021)
【题目描述】输入一个整数,即字符的ASCII码,保证存在对应的可见字符。输出相对应的字符。【输入】一个整数,即字符的ASCII码,保证存在对应的可见字符。【输出】一行,包含相应的字符。【输入样例】65【输出样例】A【源程序】#include<iostream>using namespace std;int main(){ ...原创 2018-02-01 10:43:18 · 11608 阅读 · 1 评论 -
整型与布尔型的转换(信息学奥赛一本通-T1022)
【题目描述】将一个整型变量的值赋给一个布尔型变量,再将这个布尔型变量的值赋给一个整型变量,得到的值是多少?【输入】一个整型范围内的整数,即初始时整型变量的值。【输出】一个整数,经过上述过程后得到的结果。【输入样例】3【输出样例】1【源程序】#include<iostream>using namespace std;int main(...原创 2018-02-01 10:43:28 · 12163 阅读 · 2 评论 -
Hello,World!的大小(信息学奥赛一本通-T1023)
【题目描述】我们曾经输出过的“Hello, World!”吗?它虽然不是本章所涉及的基本数据类型的数据,但我们同样可以用sizeof函数获得它所占用的空间大小。【输入】(无)【输出】一个整数,即“Hello, World!”的大小。【输入样例】(无)【输出样例】(无)【源程序】#include<iostream>using names...原创 2018-02-01 10:43:37 · 19998 阅读 · 4 评论 -
保留3位小数的浮点数(信息学奥赛一本通-T1024)
【题目描述】读入一个单精度浮点数,保留3位小数输出这个浮点数。【输入】只有一行,一个单精度浮点数。【输出】也只有一行,读入的单精度浮点数。【输入样例】12.34521【输出样例】12.345【源程序】#include<iostream> #include<iomanip> using namespace std; in...原创 2018-02-01 10:43:47 · 10825 阅读 · 2 评论 -
保留12位小数的浮点数(信息学奥赛一本通-T1025)
【题目描述】读入一个双精度浮点数,保留12位小数输出这个浮点数。【输入】只有一行,一个双精度浮点数。【输出】也只有一行,读入的双精度浮点数。【输入样例】3.1415926535798932【输出样例】3.141592653580【源程序】#include<iostream>#include<iomanip>using n...原创 2018-02-01 10:44:00 · 7532 阅读 · 0 评论 -
空格分隔输出(信息学奥赛一本通-T1026)
【题目描述】读入一个字符,一个整数,一个单精度浮点数,一个双精度浮点数,然后按顺序输出它们,并且要求在他们之间用一个空格分隔。输出浮点数时保留6位小数。【输入】第一行是一个字符;第二行是一个整数;第三行是一个单精度浮点数;第四行是一个双精度浮点数;【输出】输出字符、整数、单精度浮点数和双精度浮点数,之间用空格分隔。【输入样例】a122.33.2【...原创 2018-02-01 10:44:15 · 9863 阅读 · 0 评论 -
输出浮点数(信息学奥赛一本通-T1027)
【题目描述】读入一个双精度浮点数,分别按输出格式“%f”,“%f”保留5位小数,“%e”和“%g”的形式输出这个整数,每次在单独一行上输出。【输入】一个双精度浮点数。【输出】第一行是按“%f”输出的双精度浮点数;第二行是按“%f”保留5位小数输出的双精度浮点数;第三行是按“%e”输出的双精度浮点数;第四行是按“%g”输出的双精度浮点数。【输入样例】12.3...原创 2018-02-01 10:44:29 · 14169 阅读 · 0 评论 -
字符菱形(信息学奥赛一本通-T1028)
【题目描述】给定一个字符,用它构造一个对角线长5个字符,倾斜放置的菱形。【输入】输入只有一行, 包含一个字符。【输出】该字符构成的菱形。【输入样例】*【输出样例】 ************ *【源程序】#include<iostream>using namespace std;int main(){ cha...原创 2018-02-01 10:44:39 · 10848 阅读 · 4 评论 -
计算球的体积(信息学奥赛一本通-T1030)
【题目描述】对于半径为r的球,其体积的计算公式为v=4/3*π*r^3这里取π=3.14。现给定r,即球半径,类型为double,求球的体积V,保留到小数点后2位。【输入】输入为一个不超过100的非负实数,即球半径,类型为double。【输出】输出一个实数,即球的体积,保留到小数点后2位。【输入样例】4【输出样例】267.95【源程序】#inclu...原创 2018-02-01 10:44:57 · 11760 阅读 · 0 评论 -
反向输出一个三位数(信息学奥赛一本通-T1031)
【题目描述】将一个三位数反向输出,例如输入358,反向输出853。【输入】一个三位数n。【输出】反向输出n。【输入样例】100【输出样例】001【源程序】#include<iostream>using namespace std;int main(){ int n; int a,b,c; cin>&g...原创 2018-02-02 14:12:57 · 24843 阅读 · 2 评论 -
计算线段长度(信息学奥赛一本通-T1033)
【题目描述】已知线段的两个端点的坐标A(Xa,Ya),B(Xb,Yb),求线段AB的长度,保留到小数点后3位。【输入】第一行是两个实数Xa,Ya,即A的坐标。第二行是两个实数Xb,Yb,即B的坐标。输入中所有实数的绝对值均不超过10000。【输出】一个实数,即线段AB的长度,保留到小数点后3位。【输入样例】1 1 2 2【输出样例】1.414【源...原创 2018-02-02 14:13:33 · 16913 阅读 · 0 评论 -
计算三角形面积(信息学奥赛一本通-T1034)
【题目描述】平面上有一个三角形,它的三个顶点坐标分别为(x1, y1), (x2, y2), (x3, y3),那么请问这个三角形的面积是多少,精确到小数点后两位。【输入】输入仅一行,包括6个单精度浮点数,分别对应x1, y1, x2, y2, x3, y3。【输出】输出也是一行,输出三角形的面积,精确到小数点后两位。【输入样例】0 0 4 0 0 3【输出样例...原创 2018-02-02 14:20:26 · 16222 阅读 · 5 评论 -
等差数列末项计算(信息学奥赛一本通-T1035)
【题目描述】给出一个等差数列的前两项a1,a2,求第n项是多少。。【输入】一行,包含三个整数a1,a2,na1,a2,n。−100≤a1,a2≤100,0<n≤1000。【输出】一个整数,即第n项的值。。【输入样例】1 4 100【输出样例】298【源程序】#include<iostream>using namespace st...原创 2018-02-02 14:27:54 · 10190 阅读 · 0 评论