自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

子航OIer

信息学奥林匹克竞赛OI挑战中......

  • 博客(237)
  • 资源 (2)
  • 收藏
  • 关注

原创 目录二:信息学奥赛一本通C++语言(1101--1200)

信息学奥赛一本通C++语言——1101:不定方程求解信息学奥赛一本通C++语言——1102:与指定数字相同的数的个数信息学奥赛一本通C++语言——1103:陶陶摘苹果...

2020-03-05 14:18:00 3321

原创 目录一:信息学奥赛一本通C++语言(1001--1100)

信息学奥赛一本通C++语言——1001:Hello,World!信息学奥赛一本通C++语言——1002:输出第二个整数信息学奥赛一本通C++语言——1003:对齐输出信息学奥赛一本通C++语言——1004:字符三角形信息学奥赛一本通C++语言——1005:地球人口承载力估计信息学奥赛一本通C++语言——1006:A+B问题信息学奥赛一本通C++语言——1007:计算(a+b)×c的值...

2020-02-20 19:57:58 5455 1

原创 信息学奥赛一本通C++语言——1235:输出前k大的数

【题目描述】给定一个数组,统计前k大的数并且把这k个数从大到小输出。【输入】第一行包含一个整数n,表示数组的大小。n < 100000。第二行包含n个整数,表示数组的元素,整数之间以一个空格分开。每个整数的绝对值不超过100000000。第三行包含一个整数k,k < n。【输出】从大到小输出前k大的数,每个数一行。【输入样例】104 5 6 9 8 7 1 2 3 05【输出样例】98765在这里插入代码片...

2020-07-11 18:17:16 1137 3

原创 信息学奥赛一本通C++语言——1234:2011

【题目描述】已知长度最大为200位的正整数n,请求出2011n的后四位。【输入】第一行为一个正整数k,代表有k组数据(k≤200),接下来的k行,每行都有一个正整数n,n的位数≤200。【输出】每一个n的结果为一个整数占一行,若不足4位,去除高位多余的0。【输入样例】3528792【输出样例】1051815521【代码】在这里插入代码片...

2020-07-11 17:48:48 765

原创 信息学奥赛一本通C++语言——1233:接水问题

【题目描述】学校里有一个水房,水房里一共装有m个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为1。现在有n名同学准备接水,他们的初始接水顺序已经确定。将这些同学按接水顺序从1到n编号,i号同学的接水量为wi。接水开始时,1到m号同学各占一个水龙头,并同时打开水龙头接水。当其中某名同学j完成其接水量要求wj后,下一名排队等候接水的同学k马上接替j同学的位置开始接水。这个换人的过程是瞬间完成的,且没有任何水的浪费。即j同学第x秒结束时完成接水,则k同学第x+1 秒立刻开始接水。 若当前接水人数n’不

2020-05-14 12:31:45 2866 2

原创 信息学奥赛一本通C++语言——1232:Crossing River

【题目描述】几个人过河,每次过两人一人回,速度由慢者决定,问过河所需最短时间。【输入】输入t组数据,每组数据第1行输入n,第2行输入n个数,表示每个人过河的时间。【输出】输出t行数据,每行1个数,表示每组过河最少时间。【输入样例】141 2 5 10【输出样例】17【源代码】#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#define

2020-05-14 12:26:13 2865

原创 信息学奥赛一本通C++语言——1231:最小新整数

【题目描述】给定一个十进制正整数n(0<n<1000000000),每个数位上数字均不为0。n的位数为m。现在从m位中删除k位(0<k<m),求生成的新整数最小为多少?例如: n=9128456,k=2,则生成的新整数最小为12456。【输入】第一行t, 表示有t组数据;接下来t行,每一行表示一组测试数据,每组测试数据包含两个数字n,k。【输出】t行,每行一个数字,表示从n中删除k位后得到的最小整数。【输入样例】29128456 21444 3【输出样例】

2020-05-12 18:28:03 797

原创 信息学奥赛一本通C++语言——1230:寻找平面上的极大点

【题目描述】在一个平面上,如果有两个点(x,y),(a,b),如果说(x,y)支配了(a,b),这是指x≥a,y≥b;用图形来看就是(a,b)坐落在以(x,y)为右上角的一个无限的区域内。给定n个点的集合,一定存在若干个点,它们不会被集合中的任何一点所支配,这些点叫做极大值点。编程找出所有的极大点,按照x坐标由小到大,输出极大点的坐标。本题规定:n不超过100,并且不考虑点的坐标为负数的情况。【输入】输入包括两行,第一行是正整数n,表示是点数,第二行包含n个点的坐标,坐标值都是整数,坐标范围从

2020-05-11 19:08:13 1063

原创 信息学奥赛一本通C++语言——1229:电池的寿命

【题目描述】小S新买了一个掌上游戏机,这个游戏机由两节5号电池供电。为了保证能够长时间玩游戏,他买了很多5号电池,这些电池的生产商不同,质量也有差异,因而使用寿命也有所不同,有的能使用5个小时,有的可能就只能使用3个小时。显然如果他只有两个电池一个能用5小时一个能用3小时,那么他只能玩3个小时的游戏,有一个电池剩下的电量无法使用,但是如果他有更多的电池,就可以更加充分地利用它们,比如他有三个电池分别能用3、3、5小时,他可以先使用两节能用3个小时的电池,使用半个小时后再把其中一个换成能使用5个小时的电池,

2020-05-10 09:14:40 1782

原创 信息学奥赛一本通C++语言——1228:书架

【题目描述】John最近买了一个书架用来存放奶牛养殖书籍,但书架很快被存满了,只剩最顶层有空余。John共有N头奶牛(1≤N≤20,000),每头奶牛有自己的高度Hi(1≤Hi≤10,000),N头奶牛的总高度为S。书架高度为B(1≤B≤S<2,000,000,007)。为了到达书架顶层,奶牛可以踩着其他奶牛的背,像叠罗汉一样,直到他们的总高度不低于书架高度。当然若奶牛越多则危险性越大。为了帮助John到达书架顶层,找出使用奶牛数目最少的解决方案吧。【输入】第1行:空格隔开的整数N和B。第2

2020-05-09 18:42:18 1210

原创 信息学奥赛一本通C++语言——1227:Ride to Office

【题目描述】起点与终点相隔4500米。现Charley需要从起点骑车到终点。但是,他有个习惯,沿途需要有人陪伴,即以相同的速度,与另外一个人一起骑。而当他遇到以更快的速度骑车的人时,他会以相应的速度跟上这个更快的人。先给定所有与Charley同路的人各自的速度与出发时间,问Charley以这种方式跟人,骑完4500米需要多少时间。得出的结果若是小数,则向上取整。【输入】输入若干组数据,每组数据第一行n(1≤n≤10000),n为0,表示输入结束,接着输入n行数据,每行2个数据,表示速度v和出发时间t,

2020-05-09 18:35:32 968

原创 信息学奥赛一本通C++语言——1226:装箱问题

【题目描述】一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为1×1,2×2,3×3,4×4,5×5,6×6。这些产品通常使用一个6×6×h的长方体包裹包装然后邮寄给客户。因为邮费很贵,所以工厂要想方设法的减小每个订单运送时的包裹数量。他们很需要有一个好的程序帮他们解决这个问题从而节省费用。现在这个程序由你来设计。【输入】输入包括几行,每一行代表一个订单。每个订单里的一行包括六个整数,中间用空格隔开,分别为1×1至6×6这六种产品的数量。输入将以6个0组

2020-05-09 18:29:35 634

原创 信息学奥赛一本通C++语言——1225:金银岛

【题目描述】某天KID利用飞行器飞到了一个金银岛上,上面有许多珍贵的金属,KID虽然更喜欢各种宝石的艺术品,可是也不拒绝这样珍贵的金属。但是他只带着一个口袋,口袋至多只能装重量为w的物品。岛上金属有s个种类, 每种金属重量不同,分别为n1,n2,…,ns,同时每个种类的金属总的价值也不同,分别为v1,v2,…,vs。KID想一次带走价值尽可能多的金属,问他最多能带走价值多少的金属。注意到金属是可以被任意分割的,并且金属的价值和其重量成正比。【输入】第1行是测试数据的组数k,后面跟着k组输入。每组测试

2020-05-08 17:54:37 1583 1

原创 信息学奥赛一本通C++语言——1224:最大子矩阵

【题目描述】已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵,你的任务是找到最大的非空(大小至少是1×1)子矩阵。比如,如下4×4的矩阵09−4−1−2218−7−6−40021−2的最大子矩阵是9−4−1218这个子矩阵的大小是15。【输入】输入是一个N×N的矩阵。输入的第一行给出N(0<N≤100)。再后面的若干行中,依次(首先从左到右给出第一行的N个整数,再从左到右...

2020-05-08 17:02:17 803

原创 信息学奥赛一本通C++语言——1223:An Easy Problem

【题目描述】给定一个正整数N,求最小的、比N大的正整数M,使得M与N的二进制表示中有相同数目的1。举个例子,假如给定的N为78,其二进制表示为1001110,包含4个1,那么最小的比N大的并且二进制表示中只包含4个1的数是83,其二进制是1010011,因此83就是答案。【输入】输入若干行,每行一个数n(1≤n≤1000000),输入"0"结束。【输出】输出若干行对应的值。【输入样例...

2020-05-08 14:12:58 685

原创 信息学奥赛一本通C++语言——1222:放苹果

【题目描述】把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。【输入】第一行是测试数据的数目t(0 ≤ t ≤ 20)。以下每行均包含二个整数M和N,以空格分开。1≤M,N≤10。【输出】对输入的每组数据M和N,用一行输出相应的K。【输入样例】17 3【输出样例】8【源代码】#include...

2020-05-08 14:09:59 488

原创 信息学奥赛一本通C++语言——1221:分成互质组

【题目描述】给定n个正整数,将它们分组,使得每组中任意两个数互质。至少要分成多少个组?【输入】第一行是一个正整数n。1 ≤ n ≤ 10。第二行是n个不大于10000的正整数。【输出】一个正整数,即最少需要的组数。【输入样例】614 20 33 117 143 175【输出样例】3【源代码】#include<iostream>#include<cstd...

2020-05-07 16:19:40 847

原创 信息学奥赛一本通C++语言——1220:单词接龙

【题目描述】给定n个正整数,将它们分组,使得每组中任意两个数互质。至少要分成多少个组?【输入】第一行是一个正整数n。1 ≤ n ≤ 10。第二行是n个不大于10000的正整数。【输出】一个正整数,即最少需要的组数。【输入样例】614 20 33 117 143 175【输出样例】3【源代码】#include<iostream>#include<cstd...

2020-05-07 16:13:38 485 1

原创 信息学奥赛一本通C++语言——1219:马走日

【题目描述】马在中国象棋以日字形规则移动。请编写一段程序,给定n×m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点。【输入】第一行为整数T(T < 10),表示测试数据组数。每一组测试数据包含一行,为四个整数,分别为棋盘的大小以及初始位置坐标n,m,x,y。(0≤x≤n-1,0≤y≤m-1, m < 10, n...

2020-05-07 16:03:16 1080

原创 信息学奥赛一本通C++语言——1218:取石子游戏

【题目描述】有两堆石子,两个人轮流去取。每次取的时候,只能从较多的那堆石子里取,并且取的数目必须是较少的那堆石子数目的整数倍,最后谁能够把一堆石子取空谁就算赢。比如初始的时候两堆石子的数目是25和7。25 7 --> 11 7 --> 4 7 --> 4 3 --> 1 3 --> 1 0选手1取 选手2取 选手1取 选手2取 选手1取最后选手1(先...

2020-04-28 22:24:11 1007

原创 信息学奥赛一本通C++语言——1217:棋盘问题

【题目描述】在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放 k 个棋子的所有可行的摆放方案 C。【输入】输入含有多组测试数据。每组数据的第一行是两个正整数n,k,用一个空格隔开,表示了将在一个n×n的矩阵内描述棋盘,以及摆放棋子的数目。 (n≤8,k≤n)当为−1−1...

2020-04-27 10:34:42 854

原创 信息学奥赛一本通C++语言——1216:红与黑

【题目描述】有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。【输入】包括多个数据集合。每个数据集合的第一行是两个整数W和H,分别表示x方向和y方向瓷砖的数量。W和H都不超过20。在接下来的H行中,每行包括W个字符。每个字符表示一块瓷砖的颜色,规则如下:1)‘.’:黑色的瓷砖;...

2020-04-26 12:54:47 875

原创 信息学奥赛一本通C++语言——1215:迷宫

【题目描述】一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n * n的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行。同时当Extense处在某个格点时,他只能移动到东南西北(或者说上下左右)四个方向之一的相邻格点上,Extense想要从点A走到点B,问在不走出迷宫的情况下能不能办到。如果起点或者终点有一个不能通行(为#),则看成无法办到。...

2020-04-26 12:49:06 840

原创 信息学奥赛一本通C++语言——1214:八皇后

【题目描述】会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8 × 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。对于某个满足要求的8皇后的摆放方法,定义一个皇后串a与之对应,即a=b1b2…b8,其中bi为相应摆法中第i行皇后所处的列数。已经知道8皇后问题一共有92组解(即92个不同的皇后串)。给出一个数b,要求输出第b个串...

2020-04-24 10:40:52 467

原创 信息学奥赛一本通C++语言——1213:八皇后问题

【题目描述】在国际象棋棋盘上放置八个皇后,要求每两个皇后之间不能直接吃掉对方。【输入】(无)【输出】按给定顺序和格式输出所有八皇后问题的解(见样例)。【输入样例】(无)【输出样例】No. 11 0 0 0 0 0 0 00 0 0 0 0 0 1 00 0 0 0 1 0 0 00 0 0 0 0 0 0 10 1 0 0 0 0 0 00 0 0 1 0 0 0 0...

2020-04-23 12:06:29 772

原创 信息学奥赛一本通C++语言——1212:LETTERS

【题目描述】给出一个roe×col的大写字母矩阵,一开始的位置为左上角,你可以向上下左右四个方向移动,并且不能移向曾经经过的字母。问最多可以经过几个字母。【输入】第一行,输入字母矩阵行数R和列数S,1≤R,S≤20。接着输出R行S列字母矩阵。【输出】最多能走过的不同字母的个数。【输入样例】3 6HFDFFBAJHGDHDGAGEH【输出样例】6【源代码】#includ...

2020-04-22 14:23:23 666

原创 信息学奥赛一本通C++语言——1211:判断元素是否存在

【题目描述】有一个集合M是这样生成的:(1) 已知k是集合M的元素; (2) 如果y是M的元素,那么,2y+1和3y+1都是M的元素;(3) 除了上述二种情况外,没有别的数能够成为M的一个元素。问题:任意给定k和x,请判断x是否是M的元素。这里的k是无符号整数,x 不大于 100000,如果是,则输出YES,否则,输出NO。【输入】输入整数 k 和 x, 逗号间隔。【输出】如果是,则输...

2020-04-21 16:10:02 830

原创 信息学奥赛一本通C++语言——1210:因子分解

【题目描述】输入一个数,输出其素因子分解表达式。【输入】输入一个整数 n (2≤n<100)。【输出】输出该整数的因子分解表达式。表达式中各个素数从小到大排列。如果该整数可以分解出因子a的b次方,当b大于1时,写做 a^b ;当b等于1时,则直接写成a。【输入样例】60【输出样例】2^235【源代码】#include<iostream>using na...

2020-04-20 18:23:24 1050

原创 信息学奥赛一本通C++语言——1209:分数求和

【题目描述】输入n个分数并对他们求和,并用最简形式表示。所谓最简形式是指:分子分母的最大公约数为1;若最终结果的分母为1,则直接用整数表示。如:56、103均是最简形式,而36需要化简为12,31需要化简为3。分子和分母均不为0,也不为负数。【输入】第一行是一个整数n,表示分数个数,1≤n≤10;接下来n行,每行一个分数,用"p/q"的形式表示,不含空格,p,q均不超过10。【输出】...

2020-04-20 18:17:15 1822

原创 信息学奥赛一本通C++语言——1208:2的幂次方表示

【题目描述】任何一个正整数都可以用2的幂次方表示。例如:137=27+23+20同时约定方次用括号来表示,即ab可表示为a(b)。由此可知,137可表示为:2(7)+2(3)+2(0)进一步:7=22+2+20(21用2表示)3=2+20所以最后137可表示为:2(2(2)+2+2(0))+2(2+2(0))+2(0)又如:1315=210+28+25+2+1所以1315最后...

2020-04-20 18:08:55 967 1

原创 信息学奥赛一本通C++语言——1207:求最大公约数问题

【题目描述】给定两个正整数,求它们的最大公约数。【输入】输入一行,包含两个正整数(<1,000,000,000)。【输出】输出一个正整数,即这两个正整数的最大公约数。【输入样例】6 9【输出样例】3【源代码】#include<iostream>using namespace std;int GCD(int a,int b);int main() { ...

2020-04-20 18:03:15 887

原创 信息学奥赛一本通C++语言——1206:放苹果

【题目描述】把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。【输入】第一行是测试数据的数目t(0≤t≤20)。以下每行均包含二个整数M和N,以空格分开。1≤M,N≤10。【输出】对输入的每组数据M和N,用一行输出相应的K。【输入样例】17 3【输出样例】8【源代码】#include &lt...

2020-04-16 20:21:10 669

原创 信息学奥赛一本通C++语言——1205:汉诺塔问题

【题目描述】约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下、由小到大顺序串着由64个圆盘构成的塔。目的是将最左边杆上的盘全部移到中间的杆上,条件是一次只能移动一个盘,且不允许大盘放在小盘的上面。这是一个著名的问题,几乎所有的教材上都有这个问题。由于条件是一次只能移动一个盘,且不允许大盘放在小盘上面,所以64个盘的移动次数是:18,446,744,073...

2020-04-15 20:22:40 1039 1

原创 信息学奥赛一本通C++语言——1204:爬楼梯

【题目描述】树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数。例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一级,第二次走两级,也可以第一次走两级,第二次走一级,一共3种方法。【输入】输入包含若干行,每行包含一个正整数N,代表楼梯级数,1≤N≤30。【输出】不同的走法数,每一行输入对应一行输出。【输入样例】​5810【输出样例】​83489...

2020-04-14 22:20:25 788

原创 信息学奥赛一本通C++语言——1203:扩号匹配问题

【题目描述】在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$“标注,不能匹配的右括号用”?"标注。【输入】输入包括多组数据,每组数据一行,包含一个字符串,只包含左右括号和大小写字母,...

2020-04-13 23:00:45 697

原创 信息学奥赛一本通C++语言——1202:Pell数列

【题目描述】Pell数列a1,a2,a3,…的定义是这样的,a1=1,a2=2,…,an=2an−1+an−2(n>2)。给出一个正整数 k,要求Pell数列的第 k 项模上 32767 是多少。【输入】第1行是测试数据的组数 n,后面跟着 n 行输入。每组测试数据占 1 行,包括一个正整数k(1≤k<1000000)。【输出】n 行,每行输出对应一个输入。输出应是一个非负...

2020-04-12 18:39:36 1865 2

原创 信息学奥赛一本通C++语言——1201:菲波那契数列

【题目描述】菲波那契数列是指这样的数列: 数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。给出一个正整数a,要求菲波那契数列中第a个数是多少。【输入】第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1≤a≤20)。【输出】输出有n行,每行输出对应一个输入。输出应是一个正整数,为菲波那契数列中第a个数的大小。【输入样例】4521...

2020-04-11 16:39:01 1882 1

原创 信息学奥赛一本通C++语言——1200:分解因数

【题目描述】给出一个正整数a,要求分解成若干个正整数的乘积,即a=a1×a2×a3×…×an,并且1<a1≤a2≤a3≤…≤an,问这样的分解的种数有多少。注意到a=a也是一种分解。【输入】第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a(1<a<32768)。【输出】n行,每行输出对应一个输入。输出应是一个正整数,指明满足要求的分解的种...

2020-04-11 16:03:32 1276

原创 信息学奥赛一本通C++语言——1199:全排列

【题目描述】给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。我们假设对于小写字母有‘a’ <‘b’ < … <‘y’<‘z’,而且给定的字符串中的字母已经按照从小到大的顺序排列。【输入】只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间。【输出】输出这个字符串的所有排列方式,每行一个排列。要求字母序比较小的排列在前面。字...

2020-04-10 12:57:13 1591

原创 信息学奥赛一本通C++语言——1198:逆波兰表达式

【题目描述】逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的逆波兰表示法为+ 2 3。逆波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,例如(2 + 3) * 4的逆波兰表示法为* + 2 3 4。本题求解逆波兰表达式的值,其中运算符包括+ - * /四个。【输入】输入为一行,其中运算符和运算数之间都用空格分隔,运算数是浮点数。【输出】输出...

2020-04-09 20:44:47 588

C-C++实现实时聊天功能.zip

Dev-CPP中编译通过,编译选项中加入 -lws2_32 -std=c++11,先运行MyServer.exe,再运行Client.exe; 支持客户端和服务器互相发送消息 接收消息 监控服务器状态 监控客户端状态 掉线自动退出等功能.

2020-04-01

2019 CSP-J答案及解析

CSP-J/S是由CCF主办的计算机非专业级别的软件能力认证。认证包括CSP-J(Junior,入门级)和CSP-S(Senior,提高级)两个级别,认证内容均包括算法设计能力和编程能力。

2020-02-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除