- 博客(174)
- 收藏
- 关注
原创 甲流病人初筛
【题目描述】目前正是甲流盛行时期,为了更好地进行分流治疗,医院在挂号时要求对病人的体温和咳嗽情况进行检查,对于体温超过37.5度(含等于37.5度)并且咳嗽的病人初步判定为甲流病人(初筛)。现需要统计某天前来挂号就诊的病人中有多少人被初筛为甲流病人。【输入】第一行是某天前来挂号就诊的病人数n。(n<200)其后有n行,每行是病人的信息,包括三个信息:姓名(字符串,不含空格,最多8个字符)、体温(float)、是否咳嗽(整数,1表示咳嗽,0表示不咳嗽)。每行三个信息之间以一个空格分开。【输出】
2021-03-28 21:05:07
1621
原创 短信计费
【题目描述】用手机发短信,一条短信资费为0.1元,但限定一条短信的内容在70个字以内(包括70个字)。如果你一次所发送的短信超过了70个字,则会按照每70个字一条短信的限制把它分割成多条短信发送。假设已经知道你当月所发送的短信的字数,试统计一下你当月短信的总资费。【输入】第一行是整数n,表示当月发送短信的总次数,接着n行每行一个整数,表示每次短信的字数。【输出】输出一行,当月短信总资费,单位为元,精确到小数点后1位。【输入样例】10394942614414742723546
2021-03-28 20:56:02
482
原创 简单算术表达式求值
【题目描述】两位正整数的简单算术运算(只考虑整数运算),算术运算为:+,加法运算;-,减法运算;*,乘法运算;/,整除运算;%,取余运算。算术表达式的格式为(运算符前后可能有空格):运算数 运算符 运算数请输出相应的结果。【输入】一行算术表达式。【输出】整型算数运算的结果(结果值不一定为2位数,可能多于2位或少于2位)。【输入样例】32+64【输出样例】96#include<iostream>using namespace std;int js(int,c
2021-03-28 20:49:57
500
原创 哥德巴赫猜想
【题目描述】哥德巴赫猜想的命题之一是:大于6 的偶数等于两个素数之和。编程将6~100所有偶数表示成两个素数之和。【输入】(无)【输出】分行输出:例如:6=3+38=3+5…(每个数只拆开一次,请保证第一个加数最小)【输入样例】(无)【输出样例】(无)#include<cstdio>#include<cmath>int n,x;bool ss(int i){ int x=2; while(x<=floor(sqrt(i)) &&
2021-03-27 08:52:24
231
原创 求π的值
【题目描述】根据公式:arctanx(x)=x−x33+x55−x77+…和π=6arctanx(13√)定义函数 arctanx(x),求当最后一项小于10−6时π的值。【输入】(无)【输出】π的值。保留到小数点后10位。【输入样例】(无)【输出样例】(无)#include<iostream>#include<cstdio>#include<cmath>using namespace std;double y(double x); i
2021-03-27 08:46:16
869
原创 回文三位数
【题目描述】如果一个数从左边读和从右边读都是同一个数,就称为回文数。例如6886就是一个回文数,求出所有的既是回文数又是素数的三位数。【输入】(无)【输出】所有的既是回文数又是素数的三位数。一个数一行。【输入样例】(无)【输出样例】(无)#include<iostream>#include<cmath>using namespace std;int sh(int i);int main(){ int i; for(i=100;i<=999;i+
2021-03-27 07:48:43
1447
原创 亲和数
【题目描述】自然数a的因子是指能整除a的所有自然数,但不含a本身。例如12的因子为:1,2,3,4,6。若自然数a的因子之和为b,而且b的因子之和又等于a,则称a,b为一对“亲和数” 。求最小的一对亲和数(a<>b)。【输入】(无)【输出】1行,分别为a和b(a<b)。【输入样例】(无)【输出样例】(无)#include<iostream>using namespace std;int num(int n){ int x=0; for(int i=
2021-03-27 07:41:50
249
原创 绝对素数
【题目描述】如果一个自然数是素数,且它的数字位置经过对换后仍为素数,则称为绝对素数,例如13。试求出所有二位绝对素数。【输入】(无)【输出】所有二位绝对素数(由小到大,一个数一行)。【输入样例】(无)【输出样例】(无)...
2021-03-27 07:34:32
425
原创 最大数max(x,y,z)
【题目描述】已知:m=max(a,b,c)max(a+b,b,c)×max(a,b,b+c)输入a,b,c,求m。把求三个数的最大数max(x,y,z)分别定义成函数和过程来做。【输入】输入a,b,c。【输出】求m,保留到小数点后三位。【输入样例】1 2 3【输出样例】0.200#include<iostream>#include<cstdio>using namespace std;int max(int a,int b,int c);int mai
2021-03-26 20:14:29
1400
原创 素数个数
【题目描述】编程求2∼n(n为大于2的正整数)中有多少个素数。【输入】输入n(2≤n≤50000)。【输出】素数个数。【输入样例】10【输出样例】4#include<cmath>#include<iostream>int sh(int i);using namespace std;int main(){ int i,n,s=0; cin>>n; for(i=2;i<=n;i++) if(sh(i)==true) s++; co
2021-03-26 19:56:40
602
原创 求正整数2和n之间的完全数
1150:求正整数2和n之间的完全数时间限制: 1000 ms 内存限制: 65536 KB提交数: 28595 通过数: 17219【题目描述】求正整数2和n之间的完全数(一行一个数)。完全数:因子之和等于它本身的自然数,如6=1+2+3【输入】输入n(n≤5000)。【输出】一行一个数,按由小到大的顺序。【输入样例】7【输出样例】6#include<iostream>using namespace std;int y(int x);i
2021-03-26 19:41:13
1275
原创 统计数字/ 【07NOIP提高组】统计数字
【题目描述】某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5×109)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。【输入】第一行是整数n,表示自然数的个数;第2 n+1每行一个自然数。【输出】包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。【输入样例】8242451002100【输出样例
2020-08-29 08:59:58
530
原创 广度优先搜索之框架
广度优先搜索(BFS)优点:时间效率高(时间复杂度低)缺点:花费的空间大(空间复杂度高),求最优方案,能求全部方案(不建议,因为要求空间特别高)框架:void bfs(){ 队列首指针为h=0,t=1; 初始化,初始状态存入队列,初始状态的前驱为h; h=0; t=1; while(h<t) { 指针h后移一位,指向待扩展的结点; for(int i=1;i<=max;i++) { if(子结点符合条件) { t指针加1,把新结点存入队尾;
2020-08-28 09:07:14
182
原创 最长单词2
【题目描述】一个以‘.’结尾的简单英文句子,单词之间用空格分隔,没有缩写形式和其它特殊形式。【输入】一个以‘.’结尾的简单英文句子(长度不超过500),单词之间用空格分隔,没有缩写形式和其它特殊形式。【输出】该句子中最长的单词。如果多于一个,则输出第一个。【输入样例】I am a student of Peking University.【输出样例】University#include<iostream>#include<cstdio>#include<
2020-08-27 10:47:36
240
原创 连续出现的字符
【题目描述】给定一个字符串,在字符串中找到第一个连续出现至少k次的字符。【输入】第一行包含一个正整数k,表示至少需要连续出现的次数。1 ≤ k ≤ 1000。第二行包含需要查找的字符串。字符串长度在1到2500之间,且不包含任何空白符。【输出】若存在连续出现至少k次的字符,输出该字符;否则输出No。【输入样例】3abcccaaab【输出样例】c#include<cstdio>#include<cstdlib>#include<cstring>
2020-08-27 10:29:40
958
原创 最高分数的学生姓名
【题目描述】输入学生的人数,然后再输入每位学生的分数和姓名,求获得最高分数的学生的姓名。【输入】第一行输入一个正整数N(N ≤ 100),表示学生人数。接着输入N行,每行格式如下: 分数 姓名分数是一个非负整数,且小于等于100;姓名为一个连续的字符串,中间没有空格,长度不超过20。数据保证最高分只有一位同学。【输出】获得最高分数同学的姓名。【输入样例】587 lilei99 hanmeimei97 lily96 lucy77 jim【输出样例】hanmeimei
2020-08-27 10:13:21
1271
原创 判断字符串是否为回文
【题目描述】输入一个字符串,输出该字符串是否回文。回文是指顺读和倒读都一样的字符串。【输入】输入为一行字符串(字符串中没有空白字符,字符串长度不超过100)。【输出】如果字符串是回文,输出yes;否则,输出no。【输入样例】abcdedcba【输出样例】yes#include<cstring>#include<cstdio>#include<iostream>using namespace std;char s[100];int main()
2020-08-27 10:08:36
2030
原创 过河卒
【题目描述】棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上的某一点有一个对方的马(如C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点,如图3-1中的C点和P1,……,P8,卒不能通过对方马的控制点。棋盘用坐标表示,A点(0,0)、B点(n, m) (n,m为不超过20的整数),同样马的位置坐标是需要给出的,C≠A且C≠B。现在要求你计算出卒从A点能够到达B点的路径的条数。【输入】给出n、m和C点的坐标。【输出】从A点能够到达B点的路径的条数。
2020-08-23 08:14:08
224
1
原创 字符串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;100200300可描述为"1个1、2个 0、1个2、2个0、1个3、2个0",因此它的p型编码串为112012
2020-08-23 08:05:11
809
原创 单词翻转
【题目描述】输入一个句子(一行),将句子中的每一个单词翻转后输出。【输入】只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。【输出】翻转每一个单词后的字符串,单词之间的空格需与原文一致。【输入样例】hello world【输出样例】olleh dlrow#include<cstdio>#include<cstring> using namespace std;char s[1001];int main(){ gets(s); int l
2020-08-23 07:59:52
296
原创 最长最短单词
【题目描述】输入1行句子(不多于200个单词,每个单词长度不超过100),只包含字母、空格和逗号。单词由至少一个连续的字母构成,空格和逗号都是单词间的间隔。试输出第1个最长的单词和第1个最短单词。【输入】一行句子。【输出】第1行,第一个最长的单词。第2行,第一个最短的单词。【输入样例】I am studying Programming language C in Peking University【输出样例】ProgrammingI【提示】提示:如果所有单词长度相同,那么第一个
2020-08-22 15:55:19
1451
2
原创 单词的长度
【题目描述】输入一行单词序列,相邻单词之间由1个或多个空格间隔,请对应地计算各个单词的长度。注意:如果有标点符号(如连字符,逗号),标点符号算作与之相连的词的一部分。没有被空格间开的符号串,都算作单词。【输入】一行单词序列,最少1个单词,最多300个单词,单词之间用至少1个空格间隔。单词序列总长度不超过1000。【输出】依次输出对应单词的长度,之间以逗号间隔。【输入样例】She was born in 1990-01-02 and from Beijing city.【输出样例】3,
2020-08-22 15:46:12
851
原创 Knight Moves
【题目描述】输入n代表有个n×n的棋盘,输入开始位置的坐标和结束位置的坐标,问一个骑士朝棋盘的八个方向走马字步,从开始坐标到结束坐标可以经过多少步。【输入】首先输入一个n,表示测试样例的个数。每个测试样例有三行。第一行是棋盘的大小L(4≤L≤300);第二行和第三行分别表示马的起始位置和目标位置(0…L−1)。【输出】马移动的最小步数,起始位置和目标位置相同时输出0。【输入样例】380 07 01000 030 50101 11 1【输出样例】5280在这里
2020-08-22 08:33:00
111
原创 献给阿尔吉侬的花束
【题目描述】阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫。今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的奶酪。现在研究员们想知道,如果阿尔吉侬足够聪明,它最少需要多少时间就能吃到奶酪。迷宫用一个R×C的字符矩阵来表示。字符S表示阿尔吉侬所在的位置,字符E表示奶酪所在的位置,字符#表示墙壁,字符.表示可以通行。阿尔吉侬在1个单位时间内可以从当前的位置走到它上下左右四个方向上的任意一个位置,但不能走出地图边界。【输入】第一行是一个
2020-08-21 09:51:02
205
原创 迷宫问题
【题目描述】定义一个二维数组:int maze[5][5] = {0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。【输入】一个5 × 5的二维数组,表示一个迷宫。数据保证有唯一解。【输出】左上角到右下角的最短路径,格式如样例所示。【输入样例】0 1 0 0 00 1 0 1 00 0 0 0 0
2020-08-21 09:35:01
304
原创 走出迷宫
【题目描述】当你站在一个迷宫里的时候,往往会被错综复杂的道路弄得失去方向感,如果你能得到迷宫地图,事情就会变得非常简单。假设你已经得到了一个n*m的迷宫的图纸,请你找出从起点到出口的最短路。【输入】第一行是两个整数n和m(1≤n,m≤100),表示迷宫的行数和列数。接下来n行,每行一个长为m的字符串,表示整个迷宫的布局。字符‘.’表示空地,‘#’表示墙,‘S’表示起点,‘T’表示出口。【输出】输出从起点到出口最少需要走的步数。【输入样例】3 3S#T.#.…【输出样例】6#in
2020-08-21 09:01:54
149
原创 抓住那头牛
【题目描述】农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0≤N≤100000),牛位于点K(0≤K≤100000)。农夫有两种移动方式:1、从X移动到X−1或X+1,每次移动花费一分钟2、从X移动到2×X,每次移动花费一分钟假设牛没有意识到农夫的行动,站在原地不动。农夫最少要花多少时间才能抓住牛?【输入】两个整数,N和K。【输出】一个整数,农夫抓到牛所要花费的最小分钟数。【输入样例】5 17【输出样例】4#include<iostream>
2020-08-21 08:51:11
133
原创 The Castle
【题目描述】一座城堡被分成m*n个方块(m≤50,n≤50),每个方块可有0~4堵墙(0表示无墙)。下面示出了建筑平面图:图中的加粗黑线代表墙。几个连通的方块组成房间,房间与房间之间一定是用黑线(墙)隔开的。现在要求你编一个程序,解决以下2个问题:1、该城堡中有多少个房间?2、最大的房间有多大?【输入】平面图用一个数字表示一个方块(第1个房间用二进制1011表示,0表示无东墙,用十进制11表示)。第一行一个整数m(m≤50),表示房子南北方向的长度。第二行一个整数n(n≤50),表示房子东
2020-08-21 08:40:42
88
原创 Dungeon Master
【题目描述】这题是一个三维的迷宫题目,其中用‘.’表示空地,‘#’表示障碍物,‘S’表示起点,‘E’表示终点,求从起点到终点的最小移动次数,解法和二维的类似,只是在行动时除了东南西北移动外还多了上下。可以上下左右前后移动,每次都只能移到相邻的空位,每次需要花费一分钟,求从起点到终点最少要多久。【输入】多组测试数据。一组测试测试数据表示一个三维迷宫:前三个数,分别表示层数、一个面的长和宽,后面是每层的平面图。前三个数据为三个零表示结束。【输出】最小移动次数。【输入样例】3 4 5S….#
2020-08-20 19:20:11
1080
原创 仙岛求药
【题目描述】少年李逍遥的婶婶病了,王小虎介绍他去一趟仙灵岛,向仙女姐姐要仙丹救婶婶。叛逆但孝顺的李逍遥闯进了仙灵岛,克服了千险万难来到岛的中心,发现仙药摆在了迷阵的深处。迷阵由M×N个方格组成,有的方格内有可以瞬秒李逍遥的怪物,而有的方格内则是安全。现在李逍遥想尽快找到仙药,显然他应避开有怪物的方格,并经过最少的方格,而且那里会有神秘人物等待着他。现在要求你来帮助他实现这个目标。下图 显示了一个迷阵的样例及李逍遥找到仙药的路线。【输入】输入有多组测试数据. 每组测试数据以两个非零整数 M 和 N 开
2020-08-20 18:43:30
118
原创 删除单词后缀
【题目描述】给定一个单词,如果该单词以er、ly或者ing后缀结尾, 则删除该后缀(题目保证删除后缀后的单词长度不为0), 否则不进行任何操作。【输入】输入一行,包含一个单词(单词中间没有空格,每个单词最大长度为32)。【输出】输出按照题目要求处理后的单词。【输入样例】referer【输出样例】refer#include<iostream>#include<cstdio>#include<cstring>using namespace std;
2020-08-20 10:22:51
268
原创 验证子串
【题目描述】输入两个字符串,验证其中一个串是否为另一个串的子串。【输入】输入两个字符串, 每个字符串占一行,长度不超过200且不含空格。【输出】若第一个串s1是第二个串s2的子串,则输出(s1) is substring of (s2)否则,若第二个串s2是第一个串s1的子串,输出(s2) is substring of (s1)否则,输出 No substring。【输入样例】abcdddncabca【输出样例】abc is substring of dddncabca#incl
2020-08-20 10:13:12
2069
1
原创 整理药名
【题目描述】医生在书写药品名的时候经常不注意大小写,格式比较混乱。现要求你写一个程序将医生书写混乱的药品名整理成统一规范的格式,即药品名的第一个字符如果是字母要大写,其他字母小写。如将ASPIRIN、aspirin整理成Aspirin。【输入】第一行一个数字n,表示有n个药品名要整理,n不超过100。接下来n行,每行一个单词,长度不超过20,表示医生手书的药品名。药品名由字母、数字和-组成。【输出】n行,每行一个单词,对应输入的药品名的规范写法。【输入样例】4AspiRincisapri
2020-08-20 09:56:46
855
原创 将字符串中的小写字母转换成大写字母
【题目描述】给定一个字符串,将其中所有的小写字母转换成大写字母。【输入】输入一行,包含一个字符串(长度不超过100,可能包含空格)。【输出】输出转换后的字符串。【输入样例】helloworld123Ha【输出样例】HELLOWORLD123HA#include<cstdio>#include<cstring>#include<iostream>using namespace std;char s[100];int i,len;int mai
2020-08-20 09:49:33
3487
原创 加密的病历单
【题目描述】小英是药学专业大三的学生,暑假期间获得了去医院药房实习的机会。在药房实习期间,小英扎实的专业基础获得了医生的一致好评,得知小英在计算概论中取得过好成绩后,主任又额外交给她一项任务,解密抗战时期被加密过的一些伤员的名单。经过研究,小英发现了如下加密规律(括号中是一个“原文 -> 密文”的例子)1.原文中所有的字符都在字母表中被循环左移了三个位置(dec -> abz)2.逆序存储(abcd -> dcba )3.大小写反转(abXY -> ABxy)【输入】
2020-08-19 15:21:46
536
原创 密码翻译
【题目描述】在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易的识别。我们给出一种最简的的加密方法,对给定的一个字符串,把其中从a-y,A-Y的字母用其后继字母替代,把z和Z用a和A替代,其他非字母字符不变,则可得到一个简单的加密字符串。【输入】输入一行,包含一个字符串,长度小于80个字符。【输出】输出每行字符串的加密字符串。【输入样例】Hello! How are you!【输出样例】Ifmmp! Ip
2020-08-19 11:26:23
267
原创 配对碱基链
【题目描述】脱氧核糖核酸(DNA)由两条互补的碱基链以双螺旋的方式结合而成。而构成DNA的碱基共有4种,分别为腺瞟呤(A)、鸟嘌呤(G)、胸腺嘧啶(T)和胞嘧啶©。我们知道,在两条互补碱基链的对应位置上,腺瞟呤总是和胸腺嘧啶配对,鸟嘌呤总是和胞嘧啶配对。你的任务就是根据一条单链上的碱基序列,给出对应的互补链上的碱基序列。【输入】一个字符串,表示一条碱基链。这个字符串只含有大写字母A、T、G、C,分别表示腺瞟呤、胸腺嘧啶、鸟嘌呤和胞嘧啶。字符串长度不超过255。【输出】一个只含有大写字母A、T、G、
2020-08-19 10:06:50
598
原创 合法C标识符查
【题目描述】给定一个不包含空白符的字符串,请判断是否是C语言合法的标识符号(注:题目保证这些字符串一定不是C语言的保留字)。C语言标识符要求:1.非保留字;2.只包含字母、数字及下划线(“_”)。3.不以数字开头。【输入】一行,包含一个字符串,字符串中不包含任何空白字符,且长度不大于20。【输出】一行,如果它是C语言的合法标识符,则输出yes,否则输出no。【输入样例】RKPEGX9R;TWyYcp【输出样例】no#include<iostream>#include
2020-08-19 10:02:13
727
原创 输出亲朋字符串
【题目描述】编写程序,求给定字符串s的亲朋字符串s1。亲朋字符串s1定义如下:给定字符串s的第一个字符的ASCII值加第二个字符的ASCII值,得到第一个亲朋字符; 给定字符串s的第二个字符的ASCII值加第三个字符的ASCII值,得到第二个亲朋字符;依此类推,直到给定字符串s的倒数第二个字符。亲朋字符串的最后一个字符由给定字符串s的最后一个字符ASCII值加s的第一个字符的ASCII值。【输入】输入一行,一个长度大于等于2,小于等于100的字符串。字符串中每个字符的ASCII值不大于63。【输出
2020-08-19 09:40:18
662
原创 石头剪子布
【题目描述】石头剪子布,是一种猜拳游戏。起源于中国,然后传到日本、朝鲜等地,随着亚欧贸易的不断发展它传到了欧洲,到了近现代逐渐风靡世界。简单明了的规则,使得石头剪子布没有任何规则漏洞可钻,单次玩法比拼运气,多回合玩法比拼心理博弈,使得石头剪子布这个古老的游戏同时用于“意外”与“技术”两种特性,深受世界人民喜爱。游戏规则:石头打剪刀,布包石头,剪刀剪布。现在,需要你写一个程序来判断石头剪子布游戏的结果。【输入】第一行是一个整数N,表示一共进行了N次游戏。1≤N≤100。接下来N行的每一行包括两个字
2020-08-19 09:33:43
249
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人