CCF NOI题解
CCF NOI题解
sunny_pei
这个作者很懒,什么都没留下…
展开
-
1028. 判断互质
题目描述: 输入两个正整数m和n,判断m和n是否互质(即最大公约数为1),是则输出Yes,否则输出No。输入: 输入两个整数m和n,中间用空格隔开 输出: 如互质输出Yes,否则输出No。样例输入: 36 56 样例输出: No数据范围限制 1<=n,m<2^31代码如下:#include<bits/stdc++.h>using n...原创 2018-08-20 20:50:35 · 2062 阅读 · 0 评论 -
1029. 信息加密
题目描述: 在传递信息的过程中,为了加密,有时需要按一定规则将文本转换成密文发送出去。有一种加密规则是这样的: 1. 对于字母字符,将其转换成其后的第3个字母。例如:A→D,a→d,X→A,x→a; 2. 对于非字母字符,保持不变。 现在,请你根据输入的一行字符,输出其对应的密码。输入: 输入一个字符串 输出: 输出加密后的字符串样例输入: I(2016)love(08)C...原创 2018-08-20 16:18:17 · 868 阅读 · 0 评论 -
1030. 角谷猜想
题目描述: 角谷猜想又称冰雹猜想。它首先流传于美国,不久传到欧洲,后来由一位叫角谷的日本人带到亚洲。因为被称为角谷猜想。 通俗地讲,角谷猜想的内容是这样的:任意给定一个自然数n,当n是偶数时,将它除以2,即将它变成n/2;当n是奇数时,就将它变成3n+1,……,若干步后,总会得到1。 在上述演变过程中,将每一次出现的数字排列起来,就会出现一个数字序列。 我们现在要解决的问题是:对于给定的n...原创 2018-08-20 16:41:41 · 3530 阅读 · 0 评论 -
1031. 等腰三角形
题目描述: 输入一个正整数n,输出高为n的由*组成的等腰三角形。输入: 输入一个正整数。 输出: 输出高为n的由*组成的等腰三角形。样例输入: 3 样例输出: 代码如下:#include<bits/stdc++.h>using namespace std;int main(){ int n,i,j; cin>>n; f...原创 2018-08-20 21:05:11 · 2001 阅读 · 0 评论 -
1032. 菱形
题目描述: 输入一个正整数n,输出用1至(2n-1)的数字组成的菱形。输入: 输入一个正整数。 输出: 输出对应的菱形(见样例)。样例输入: 3 样例输出: “” 1 “123 12345 ”123 “” 1 数据范围限制: 1<=n<=10代码如下:#include<bits/stdc++.h>using ...原创 2018-08-20 21:18:35 · 950 阅读 · 0 评论 -
1041. 志愿者选拔
题目描述: 世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取m名志愿者,则面试分数线为排名第m*150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。 现在就请你编写程序划定面试分数线,并输出...原创 2018-08-21 16:32:58 · 933 阅读 · 0 评论 -
1043. 矩形分割
题目描述: 平面上有一个大矩形,其左下角坐标(0,0),右上角坐标(R,R)。大矩形内部包含一些小矩形,小矩形都平行于坐标轴且互不重叠。所有矩形的顶点都是整点。要求画一根平行于y轴的直线x=k(k是整数) ,使得这些小矩形落在直线左边的面积必须大于等于落在右边的面积,且两边面积之差最小。并且,要使得大矩形在直线左边的的面积尽可能大。注意:若直线穿过一个小矩形,将会把它切成两个部分,分属左右两侧。...翻译 2018-08-22 17:11:16 · 2091 阅读 · 0 评论 -
1048. 检测矩阵
题目描述: 给定n*n由0和1组成的矩阵,如果矩阵的每一行和每一列的1的数量都是偶数,则认为符合条件。 你的任务就是检测矩阵是否符合条件,或者在仅改变一个矩阵元素的情况下能否符合条件。 “改变矩阵元素”的操作定义为0变成1或者1变成0。输入: 输入n + 1行,第1行为矩阵的大小n(0 < n < 100),以下n行为矩阵的每一行的元素,元素之间以一个空格分...原创 2018-08-24 12:38:58 · 1636 阅读 · 0 评论 -
1050. 矩阵乘法
题目描述计算两个矩阵的乘法。n*m阶的矩阵A乘以m*k阶的矩阵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列,矩...原创 2018-08-24 16:06:50 · 1066 阅读 · 0 评论 -
1051. 合影 (vector,sort)
题目描述小云和朋友们去爬香山,为美丽的景色所陶醉,想合影留念。如果他们站成一排,男生全部在左(从拍照者的角度),并按照从矮到高的顺序从左到右排,女生全部在右,并按照从高到矮的顺序从左到右排,请问他们合影的效果是什么样的(所有人的身高都不同)?输入第一行是人数n(2 <= n <= 40,且至少有1个男生和1个女生)。 后面紧跟n行,每行输入一个人的性别(男male或女fe...原创 2018-08-24 21:00:45 · 421 阅读 · 0 评论 -
1055. 走廊
题目描述:有一个M行N列的教室座位中,有D对同学总爱凑在一起讲话。现老师要用走廊隔开他们。但只能在行之间加入K条走廊,在列中加入L条走廊,问加在哪里能使效果最佳。(一对爱讲话的同学只有左右相邻或上下相邻)。输入第一行,有5各用空格隔开的整数,分别是M,N,K,L,D(2<=N,M<=1000,0<=K < M,0<=L< N,D<=2000)。原创 2018-08-26 21:17:10 · 765 阅读 · 0 评论 -
1056. 表达式 (进制转换)
题目描述表达式6×9=42对于十进制来说是错误的,但是对于十三进制来说是正确的。即6(13)×9(13)=42(13),而42(13)=4×131+2×130=54(10)。你的任务是写一段程序读入3个整数p、q和r,然后确定一个进制B(2≤B≤16)使得p×q=r。如果B有很多选择,输出最小的一个。例如:p=11,q=11,r=121。则有11(3) ×11(3)=121(3),11(10)...转载 2018-08-27 10:34:58 · 1142 阅读 · 0 评论 -
1057. 石头剪刀布
题目描述Bart的妹妹Lisa在一个二维矩阵上创造了新的文明。矩阵上每个位置被三种生命形式之一占据:石头,剪刀,布。每天,上下左右相邻的不同生命形式将会发生战斗。在战斗中,石头永远胜剪刀,剪刀永远胜布,布永远胜石头。每一天结束之后,败者的领地将被胜者占领。 你的工作是计算出n天之后矩阵的占据情况。输入第一行包含三个正整数r,c,n,分别表示矩阵的行数、列数以及天数。每个整数均不超过1...原创 2018-08-27 11:33:19 · 610 阅读 · 0 评论 -
1058. 统计单词
题目描述输入一段由若干个以空格分隔的单词组成的英文文章,求出文章中最短的单词(文章以英文句点“.”结束,且字符总数不超过200)。输入输入文章。输出输出最早的最短的单词。样例输入We are Oiers.样例输出We代码如下#include <bits/stdc++.h>using namespace std;int main(){ ...原创 2018-08-27 12:28:46 · 692 阅读 · 0 评论 -
1059. 表达式求值 (水题,字符串的简单处理)
题目描述计算仅含有加法计算的表达式的值。该表达式长度不超过250,中间没有空格与括号,并且计算结果在整数范围内。输入输入表达式。输出输出表达式的值。样例输入12+23+21样例输出56代码如下#include<bits/stdc++.h> using namespace std;int main (){ char s; ...原创 2018-08-27 16:08:22 · 1177 阅读 · 0 评论 -
1065. 最小公倍数
题目描述输入正整数n,m,编写程序计算n和m的最小公倍数。输入一行两个空格隔开的正整数n,m。输出输出n和m的最小公倍数。样例输入12 18样例输出36数据范围限制1<=n,m<=10^6思路: 本题较简单,有两种解法,一种是最简单的暴力解法,从1枚举到n*m,判断是否是最小公倍数;第二种则是应用欧几里得算法,先求出最大公约数,最小公倍...原创 2018-08-27 21:01:03 · 295 阅读 · 0 评论 -
1066. 素数对
题目描述两个相差为2的素数称为素数对,如5和7,17和19等,本题目要求找出所有两个数均不大于n的素数对。输入一个正整数n。1<=n<=10000。输出按照从小到大的顺序输出所有小于等于n的素数对。每对素数对输出一行,中间用单个空格隔开。若没有找到任何素数对,输出empty。样例输入100样例输出3 5 5 7 11 13 17 19 29 ...原创 2018-08-27 21:38:29 · 1153 阅读 · 0 评论 -
1067. 最匹配的矩阵
题目描述给定一个m*n的矩阵A和r*s的矩阵B,其中0 < r < = m,0 < s < = n,A、B所有元素值都是小于100的正整数。求A中一个大小为r*s的子矩阵C,使得B和C的对应元素差值的绝对值之和最小,这时称C为最匹配的矩阵。如果有多个子矩阵同时满足条件,选择子矩阵左上角元素行号小者,行号相同时,选择列号小者。输入第一行是m和n,以一个空格分开。 ...转载 2018-08-28 11:02:37 · 2513 阅读 · 0 评论 -
1068. 图像旋转翻转变换
题目描述给定m行n列的图像各像素点灰度值,对其依次进行一系列操作后,求最终图像。 其中,可能的操作有如下四种: A:顺时针旋转90度; B:逆时针旋转90度; C:左右翻转; D:上下翻转。输入第一行包含两个正整数m和n,表示图像的行数和列数,中间用单个空格隔开。1 <= m <= 100, 1 <= n <= 100。 接下来m行,每行n个...原创 2018-08-28 12:25:24 · 4057 阅读 · 0 评论 -
1069. 分解因数
题目描述给出一个正整数a,要求分解成若干个正整数的乘积,即a=a1*a2*a3*…*an,并且1< a1<=a2<=a3<=…<=an,问这样的分解方案有多少种。注意a=a也是一种分解。输入第一行是测试数据的组数n,后面n行,每行包括一个正整数a(1< a<32768)。输出N行,每行输出一个个正整数,表示分解方案数。样例输入2原创 2018-08-28 17:18:10 · 1645 阅读 · 0 评论 -
1070. 汉诺塔游戏
题目描述汉诺塔由编号为1到n大小不同的圆盘和三根柱子a,b,c组成,编号越小盘子越小。开始时,这n个圆盘由大到小依次套在a柱上,如图1.6.3所示。要求把a柱上n个圆盘按下述规则移到c柱上: ①一次只能移一个圆盘,它必须位于某个柱子的顶部; ②圆盘只能在三个柱子上存放; ③任何时刻不允许大盘压小盘。 将这n个盘子用最少移动次数从a柱移动到c柱上,输出每一步的移动方法。输入只有一...原创 2018-09-03 18:51:40 · 981 阅读 · 0 评论 -
1073. 放苹果
题目描述把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的放法(放法数用K表示)。如在7个苹果3个盘子的情况下, 5,1,1和1,5,1 是同一种放法。输入第一行是测试数据的数目t(0<=t<= 20)。以下每行均包含二个整数M和N(1<=M,N<=10),以空格分开。输出对输入的每组数据M和N,用一行输出相应的K。样例输...转载 2018-09-04 11:10:19 · 351 阅读 · 0 评论 -
1074. 2的幂次方表示
题目描述任何一个正整数都可以用2的幂次方表示。例如:137=2^7+2^3+2^0。同时约定方次用括号来表示,即a^b可表示为a(b)。由此可知,137可表示为:2(7)+2(3)+2(0)。 进一步:7=2^2+2+2^0(21用2表示),3=2+2^0 所以最后137可表示为:2(2(2)+2+2(0))+2(2+2(0))+2(0) 又如:1315=2^10+2^8...转载 2018-09-04 12:23:22 · 622 阅读 · 1 评论 -
1076. 进制转换
题目描述用递归算法将一个十进制数X(1<=X<=10^9)转换成任意进制数M(2<=M<=16)。 输入一行两个正整数X和M。输出输出X的M进制的表示。样例输入31 16样例输出1F思路:本题若直接应用字符串,则十分简洁。代码一(递归算法):#include <bits/stdc++.h>using namesp...原创 2018-09-05 08:01:21 · 707 阅读 · 0 评论 -
1077. 自然数的拆分问题
题目描述任何一个大于1的自然数n,总可以拆分成若干个小于n的自然数之和。拆分成的数字相同但顺序不同被看做是相同的方案,如果1+3与3+1被看做是同一种方案。输入输入待拆分的自然数n。输出如样例输出若干个拆分方案(具体见样例)。样例输入7样例输出1+1+1+1+1+1+1 1+1+1+1+1+2 1+1+1+1+3 1+1+1+2+2 1+1+1+4 1...原创 2018-09-05 12:49:51 · 1212 阅读 · 0 评论