CCF认证刷题
guyueCT
生命不息,奋斗不止,学习不停。
展开
-
CCF201812-1 小明上学
CCF201812-1 小明上学题目:直接上代码吧!//201812-1 小明上学#include<iostream>using namespace std;long long ans;int n,r,g,y;int main(){ cin>>r>>y>>g>>n; //输入红、黄、绿灯时间,和路段数n while...原创 2019-07-23 16:19:08 · 136 阅读 · 0 评论 -
CCF201409-2 画图
CCF201409-2 画图题目:题目分析:统计涂色面积:1.把纸看作一个二维数组a[105][105],一开始未涂色,均为0,涂色时a[i][j]=1;2.循环得到n次输入的(x1,y1)、(x2,y2) ,从x:x1->x2、y:y1->y2 的所有a[x][y]=1;3.遍历a[][],如果a[i][j]=1,则面积ans++;4.输出ans。代码如下,有详细...原创 2019-07-30 17:52:52 · 238 阅读 · 0 评论 -
CCF201403-1 相反数
CCF201403-1 相反数题目:题目分析:暴力:遍历数组如果两个数之和为0,则为相反数。需要注意一个数统计了两次,输出时除2。代码如下:#include<iostream>using namespace std;int a[505],n,ans;int main(){ cin>>n; //输入 for(int i=0;i<n;i++) ...原创 2019-07-30 18:07:35 · 165 阅读 · 0 评论 -
CCF认证试题201903-1小中大
题目 CCF认证试题201903-1小中大ccf认证备考第一天,你我共勉!题目要求输出一行排好序的数的最大值、中位数、最小值,比较简单。注意有一个小坑:中位数可能为小数,并且要四舍五入保留一位小数,当n为偶数时,中位数是两个数的和的一半,这是中位数可能是小数,但不需要四舍五入。实际上,本题都不需要四舍五入。代码:#include<iostream>#include<...原创 2019-07-21 21:30:14 · 237 阅读 · 0 评论 -
CCF201703-1 分蛋糕
CCF201703-1 分蛋糕题目:题目分析:题目不难,但却令人有所收获!有一个需要注意的地方:分到最后一次的时候需要注意是否刚好够分,不然可能只能得20分,O(∩_∩)O哈哈~具体做法如下,代码有详细注释://ccf201703-1 分蛋糕#include<iostream>using namespace std;int n,k,a[1010],ans,s; //...原创 2019-07-25 22:15:10 · 143 阅读 · 0 评论 -
CCF201703-2 学生排队
CCF201703-2 学生排队题目:题目分析:题目的意思是把一个数组中的数任意向前或者向后移q,这是一种数组排序的变体题,所以无论向前或者向后移q,我们只要使用swap()函数让当前的数与其前或者其后的数交换q次位置即可。另外,需要注意一点,当前的数交换到1或者n(即第一个位置或者最后一个位置)时,就不能再交换了。代码如下,有详细注释://ccf201703-2 学生排队#inc...原创 2019-07-26 09:09:29 · 190 阅读 · 0 评论 -
CCF201612-1 中间数
CCF201612-1 中间数题目:题目分析:求数组中间数,先排序,在统计即可。此题给了我一些启发:代码1:(通过,但有点繁琐)#include<iostream>#include<algorithm>using namespace std;int n,a[1010],M,m;int main(){ cin>>n; for(int i=...原创 2019-07-26 10:32:20 · 143 阅读 · 0 评论 -
CCF201403-2 窗口
CCF201403-2 窗口题目:题目分析:模拟窗口被点击的然后置于顶层。1.对于每一个窗口,设置窗口编号,坐标(x1,y1),(x2,y2),窗口优先级。2.模拟每一次点击,判断是否在某一个窗口中,如果在多个窗口中,需要确定优先级最大的窗口。3.输出处理:如果没有点击到任何一个窗口,则输出IGNORED; 反之,需要把点击到...原创 2019-07-31 16:45:32 · 206 阅读 · 0 评论 -
CCF201903-2 二十四点
CCF资格认证试题201903-2 二十四点题目此题需要注意题目中的乘法输入为“x”,若看成“*”,只能的50分,QAQ~~。方法一:模拟:对每一个符号位都进行分析,先处理乘除,在处理加减。//ccf 201903-2 二十四点#include<iostream>#include<cstdio>#include<cstring>using n...原创 2019-07-22 23:30:31 · 152 阅读 · 0 评论 -
CCF201312-1 出现次数最多的数
CCF201312-1 出现次数最多的数题目:题目分析:统计出现次数最多的数:方法一: 解此题可以使用一个大数组,输入数字的大小为数组下标,最后遍历数组即可得到答案。代码如下:#include<iostream>using namespace std;int a[10010],n,q,Max;int main(){ cin...原创 2019-07-31 20:56:33 · 232 阅读 · 0 评论 -
CCF201312-2 ISBN号码
CCF201312-2 ISBN号码题目:题目分析:题目要求验证ISBN号码最后一位的正确性,需要把输入的ISBN号码从字符转为数字,在进行一些加法、乘法处理。再最后的输出判定上,需要分四种情况: 1.最后一个字符为数字等于所得结果%11; 2.最后一个字符为X,所得结果为10; 3.最后一个字符为数字不等于所得结果%11; 4.最...原创 2019-07-31 21:38:50 · 192 阅读 · 0 评论 -
CCF201612-2 工资计算
CCF201612-2 工资计算题目:题目分析:1.初始化每个上税结点金额数组b[];2.初始化b[]每个金额对应的税后金额存于数组a[];3.根据s等于所在所得税区间的前一个对于税前金额+超出金额乘税率 ,得到s;4.输出。代码+注释:#include<iostream>using namespace std;int t,s,i;int a[10]={3500...原创 2019-07-27 00:38:05 · 305 阅读 · 0 评论 -
CCF201609-1 最大波动
CCF201609-1 最大波动题目:题目分析:题目要求求数组相邻两个数的最大差值,遍历一遍数组,计算比较即可。#include<iostream>#include<stdlib.h> //abs()__求绝对值 using namespace std;int a[1010],n,M; //M_最大波动值 int main(){ cin>>...原创 2019-07-27 11:39:28 · 167 阅读 · 0 评论 -
CCF201609-2 火车购票
CCF201609-2 火车购票题目:题目分析:1.使用数组a[]记录每一个位置安排情况,使用数组b[]记录每一排位置安排情况;2.对于每一个购票信息:先查询每一排是否可以安排,如果可以就安排并输出安排信息,如果不可以,则从1到100查询每一个空位,从小到大安排。#include<iostream>using namespace std;int a[110],b[25]...原创 2019-07-27 16:18:07 · 82 阅读 · 0 评论 -
CCF201604-1 折点计数
CCF201604-1 折点计数题目:题目分析:对数组进行遍历统计,需要排除第一个和最后一个数据。//ccf201604-1 折点计数 #include<iostream>using namespace std;int a[1010],n,m;int main(){ cin>>n; for(int i=1;i<=n;i++)cin>>...原创 2019-07-27 16:38:38 · 134 阅读 · 0 评论 -
CCF201604-2 俄罗斯方块
CCF201604-2 俄罗斯方块题目:题目分析:题目模拟游戏俄罗斯方块中的小方块下落的过程,需要我们计算小方块最后能落到的位置。首先下落俄罗斯块(程序16-19行的输入)存入数组b[4][4],方格图存入a[16][10],存0表示空的,存1表示有该格子上有方块。另外,需要让数组a最后一行全为1,表示边界。我的做法是把下落俄罗斯块看作一个整体在方格图中垂直下落,每下落一行便判断小方块...原创 2019-07-28 20:41:07 · 107 阅读 · 0 评论 -
CCF201409-1 相邻数对
CCF201409-1 相邻数对题目:题目分析:求相邻数对,求n个数中求两个数值正好相差1的数有多少对。1.先排序。2.从第二个数开始遍历数组,如果前一个数加一等于当前数字,则数对加一。3.输出。代码如下:#include<iostream>#include<algorithm>using namespace std;int a[1005],n,an...原创 2019-07-30 17:24:45 · 176 阅读 · 0 评论 -
CCF201412-2 Z字形扫描
CCF201412-2 Z字形扫描题目:题目分析:根据题目输入n,矩阵a[ ]。Z字形扫描矩阵,由于单次扫描的下标之和依次是0,1,2,…,2n。所以循环k=0—2n次遍历,由于2*n下标会越界,故数组a需要开大一些。对于k为偶数,当前需要输出的a[i][j]的下标变化为:i:k->0; j:0->k.对于k为偶数,当前需要输出的a[i][j]的下标变化为:...原创 2019-07-30 17:11:20 · 88 阅读 · 0 评论 -
CCF201812-2 小明放学
CCF201812-2 小明放学题目:分析:这个题与第一题相关,一开始得到所有路段的数据,需要实时更新这些数据。我采取遇到一个路段更新一个路段的方法–模拟。如果a=0,不需要更新,其他情况使用已用时间来对信号灯的状态进行调整。需要注意的是,题目的路灯时间是倒计时,所以要用倒计时-已用时间,在+一个红绿灯过程的时间来处理负数情况。相应的,由于是倒计时,灯的状态也要反过来!!!即红灯–黄灯...原创 2019-07-23 17:48:44 · 98 阅读 · 0 评论 -
CCF201512-1 消除类游戏
CCF201512-1 消除类游戏题目:2题目分析:为简化消除过程,我们可以把行和列的消除分开。使用数组a[][]存储棋子,使用数组b[][]处理行,数组c[][]处理列。//b[i][j]统计第i行中第j个数字与它前面的数字连续相同个数。//c[i][j]统计第j列中第i个数字与它前面的数字连续相同个数。处理数组b[][]中大于等于3的位置b[i][j],让第i行第j-2到j的...原创 2019-07-28 22:00:48 · 104 阅读 · 0 评论 -
CCF201509-1 数列分段
CCF201509-1 数列分段题目:题目分析:不断读入数字,如果它与上一个数字不相同,则计数器ans+1,最后输出即可。代码,有注释:#include<iostream>using namespace std;int n,ans=1,pron,cn;int main(){ cin>>n>>pron; //输入n和第一个数字,ans初始化1...原创 2019-07-28 22:11:31 · 142 阅读 · 0 评论 -
CCF201809-1 卖菜
CCF201809-1 卖菜题目:此题比较简单,需要注意使用两个数组存储。#include<iostream>using namespace std;int a[1010],n,b[1010];int main(){ cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; b[1]=(a[1]+a[2])/2;...原创 2019-07-24 00:23:19 · 76 阅读 · 0 评论 -
CCF201809-2 买菜
CCF201809-2 买菜题目:题目分析:题目要求两个人时间段的交集,由于两个人的装车的时间段是变化的,不容易把控,我们可以以不变的时间为参照,把每个人的装车时间段在时间线标记,如果两个人都标记的,那么就是他们时间的交集。具体做法:开一个大小为1000010的数组e(题目要求最大时间为1000000),如果j时间有人装车,则e[j]++;那么如果e[j]=2,说明两个人都装车,即时间交...原创 2019-07-24 09:46:52 · 77 阅读 · 0 评论 -
CCF201509-2 日期计算
CCF201509-2 日期计算题目:题目分析:求某年第n天是该年的几月几日,需要特殊处理闰年情况。为了程序设计方便,使用数组a[]依次存储每个月前一天是一年第几天,使用数组b[]存储每一月有多少天。对于输入的第n天,遍历数组a[]找到一个比它大的数,则此时下标对应的便是年份m,天数等于d=n-a[m-1],这里需要处理d=0的特殊情况。闰年且大于2月的情况,都要减一天,如果是每个月...原创 2019-07-29 11:47:51 · 200 阅读 · 0 评论 -
CCF201503-1 图像旋转
CCF201503-1 图像旋转题目:题目分析:矩阵逆时针旋转90度输出,即需要按列从后往前输出矩阵即可。#include<iostream>using namespace std;int n,m,a[1010][1010];int main(){ cin>>n>>m; //输入 for(int i=0;i<n;i++) for...原创 2019-07-29 12:00:31 · 103 阅读 · 0 评论 -
CCF201803-2 碰撞的小球
CCF201803-2 碰撞的小球题目:题目分析:由于数据量不是很大,所以可以使用暴力模拟。三个数组a,b,c:数组a记录小球位置,b记录对应小球速度,c作为方向改变标记对于每一秒,我们都可以根据上一秒的状态来进行推出,并且根据当前的状态,推出下一秒的速度,初始速度都是1,相反方向速度为-1。所以每一秒的位置改变等于:a[j]+=b[j]当两个小球j,k位置相等并且没有改变方向,注...原创 2019-07-24 11:10:26 · 214 阅读 · 0 评论 -
CCF201712-1 最下差值
CCF201712-1 最下差值题目:题目分析:先排序,再计算差值。比较得出最小值。//ccf201712-1 最小差值#include<iostream>#include<algorithm>using namespace std;int n,a[1010],Min=10000; //Min初始化为最大 int main(){ cin>>...原创 2019-07-24 15:12:27 · 117 阅读 · 0 评论 -
CCF201712-2 游戏
CCF201712-2 游戏题目:题目分析:此题是约瑟夫问题的变体,需要循环淘汰游戏人数,直到剩余一个人。需要设立一个报数器,不停自增1报数。还需要对出局的人加以标记,不再报数。具体代码有注释。//ccf201712-2 游戏 #include<iostream>using namespace std;int n,k,a[1010],cn,m,b; //cn-当前...原创 2019-07-24 15:51:59 · 69 阅读 · 0 评论 -
CCF201503-2 数字排序
CCF201503-2 数字排序题目:题目分析:题目要求统计一列数的重复数字个数,并按重复次数多少输出。解题思路:1.设计数据结构:struct node{ int value,time;}a[1010];value:存储输入的数字,time存储该数字出现的次数,因为 1 ≤ n ≤ 1000,给出的数都是不超过1000的非负整数,所以输入时数组a[]的下标就是该数的值。2...原创 2019-07-29 15:27:31 · 120 阅读 · 0 评论 -
CCF201803-1 跳一跳
CCF201803-1 跳一跳题目:题目分析:题目要求跳一跳游戏分数。我们可以不断从读入数据:如果是0就结束读入,输出当前分数ans;如果是1就重置cc(跳中心的次数),ans+1;如果是2,cc++,ans+=2*cc。代码如下,详细注解:#include<iostream>using namespace std;int n,cc,ans; //cc记录跳中心...原创 2019-07-29 15:42:42 · 162 阅读 · 0 评论 -
CCF201412-1 门禁系统
CCF201412-1 门禁系统题目:题目分析:根据之前的输入,输出当前输入数字的输入次数。可以使用一个数组a[]存储数字的当前输入次数,即a[i]存储i当前到访的次数。每读入一个数字m就使a[m]++,然后及时输出a[m]即可。代码如下,详细注释:#include<iostream>using namespace std;int n,m,a[1010];//a[i...原创 2019-07-29 15:57:05 · 108 阅读 · 0 评论 -
CCF201709-1 打酱油
CCF201709-1 打酱油题目:题目分析:使用贪心策略:1.尽可能多的买5瓶,获得更多赠品;2.剩余的钱尽可能多的买3瓶,获得更多赠品;3.再剩余的钱,单买。#include<iostream>using namespace std;int n;int main(){ cin>>n; cout<<n/50*7+(n-n/50*50)...原创 2019-07-25 10:36:39 · 74 阅读 · 0 评论 -
CCF201709-2 公共钥匙盒
CCF201709-2 公共钥匙盒题目:题目分析:数据量不是很大,故可以使用暴力模拟。1.先把数据按借出时间排序放入一个数组d[],按归还时间排序(同一时间归还的,再按照钥匙编号排序)放入另一个数组b[];2.模拟时间i从1到最后一把钥匙归还时间,如果在i时刻有借出钥匙,则把钥匙在钥匙盒(数组a[])相应的位置置为0,如果在i时刻有归还钥匙,则查询钥匙盒中第一个空位,归还钥匙。由于一个...原创 2019-07-25 14:56:28 · 127 阅读 · 0 评论 -
CCF201512-1 数位之和
CCF201512-1 数位之和题目:题目分析:求数n的每一位的位数之和,可以使用取余运算,得出每一位的值再相加,但是也有点麻烦。此题使用字符串会更简单。把输入数字看出字符串,对每一位进行减字符’0’,即可得到它们的值,再求和即可。代码如下:#include<iostream>#include<string>using namespace std;str...原创 2019-07-28 20:54:39 · 185 阅读 · 0 评论