![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CCF刷题
cloudless_sky
快乐coder
展开
-
CCF 2020期末预测之安全指数
#include <iostream>using namespace std;int main(){ int n,w,s,r; cin >> n; r=0; while(n--) { cin >> w >> s; r += w*s; } if(r<=0) r=0; cout << r << endl; ret..原创 2021-01-04 16:28:34 · 226 阅读 · 0 评论 -
CCF 202009-2 风险人群筛查 C++
在这里插入图片描述#include <iostream>using namespace std;int main(){ int pass=0,stay=0; int n,k,t,xl,yd,xr,yu; cin >> n >> k >> t >> xl >> yd >> xr >> yu; while(n--) { int c=0; .原创 2021-01-05 09:11:34 · 127 阅读 · 0 评论 -
CCF 202006-1 线性分类器 bool变量一定要初始化
思路:创建一个结构体,其中包含x,y,type和经过直线分类后的type2,将n组结构体存入vector中,然后对于m组直线中的每一条直线,根据x和公式算出y1,根据y1与y的大小判断这个点在直线的上方还是下方,从而得出type2.。判断完n个点后,便对vector中的结构体进行遍历,如果每一个结构体中的type和type2都一样,则输出Yes,否则输出No。#include <iostream>#include <vector>using namespace std;...原创 2021-01-05 11:14:32 · 168 阅读 · 0 评论 -
CCF 201912-1 报数 C++
思路:定义四个变量,分别记录甲乙丙丁报数跳过的次数。再定义一个变量count,记录当前的真实数值。从1开始判断这个数是否为7的倍数或包含7,若是则跳过,但count依然加1;否则n–;还可以利用count%4来区分甲乙丙丁。判断是否包含7时,循环得到个位十位百位……的数,分别判断是否为7.#include <iostream>using namespace std;bool isseven(int x){ if(x%7==0) return true; int m;..原创 2021-01-05 12:01:26 · 265 阅读 · 1 评论 -
CCF 201909-1 小明种苹果 C++
思路:最后一轮疏果后剩余的苹果总数T实则为第二行开始的正负数的总和;求疏果个数最多的树的编号k以及最多疏果个数p需要分别求出每一行中的负数的和,并不断更新最小值。#include <iostream>#include <cmath>using namespace std;int main(){ int N,M; int sum1=0; int k=1,p=0; cin >> N >> M; for(int...原创 2021-01-05 13:59:22 · 151 阅读 · 0 评论 -
CCF 201909-2 小明种苹果(续)C++
思路:求苹果剩余总数T:对于每一行用一个vector存储,并且从后往前找到第一个整数,若是最后一个则直接加到T上,若不是最后一个则加上后面的所有负数,重复N次操作,最后得到所有树的总苹果树数;求发生苹果掉落情况的苹果树颗数D:由于第一个操作一定是统计,所以把初次统计减去所有疏果数(本行的负数数)与上一问得到的这棵树的最终统计苹果树,如果差值为0则没有落果,否则落果数加1;求连续三棵苹果树存在落果情况的组数E:将第二问存在落果情况的树的编号存储在一个数组中,判断连续三个数值不为0的组数;其中首尾...原创 2021-01-05 15:26:31 · 136 阅读 · 0 评论 -
CCF 201903-1 小中大 C++ 精度、类型转换问题注意!
思路:读取n,如果n%2==1,说明有奇数个数,中位数为第n/2向上取整个数(n/2+1);如果有偶数个数,则中位数为第n/2和n/2+1个数加和再除以2;定义三个变量分别存储最大值、最小值和中位数,最大值和最小值通过保留第一个和最后一个数并且比较大小来确定。输出中位数前要判断是否带小数,如果n为奇数,则中位数肯定是整数,如果n是偶数,则要看中间的两个数相加得到的是奇数还是偶数,如果是偶数,则除以2得到的中位数必然是整数,如果和是奇数,则得到的是小数,需要四舍五入输出一位小数。其实,由于相加的两个是整...原创 2021-01-05 16:20:43 · 617 阅读 · 0 评论 -
CCF 201903-2 二十四点 C++ 注意
思路:先用getline()读取整个字符串。利用一个栈,对字符串中的运算数边运算边入栈:遇到乘除,取出栈顶元素和字符串中该乘除号的下一个字符(运算数)进行乘除运算,然后把结果压入栈中;如果遇到减号,则把下一个运算数取负号然后压入栈中。然后对栈中所有的运算数做加法,判断最后的结果是否为24即可。#include <iostream>#include <stack>#include <string>using namespace std;int main()...原创 2021-01-05 17:22:07 · 185 阅读 · 0 评论 -
CCF 201812-1小明上学 C++
思路:红绿黄依次循环,遇到红灯要等t秒,遇到黄灯要等t+30(红灯)秒,遇到绿灯不用等直接通过,没遇到灯则t表示路程时间。所以总时间等于等灯的时间加上路程的时间。#include <iostream>using namespace std;int main(){ int r,y,g,n,k,t; int sum=0; cin >> r >> y >> g >> n; while(n--) { ..原创 2021-01-06 10:04:51 · 244 阅读 · 0 评论 -
CCF 201812-2 小明放学 C++ 注意挺难
//与上一题不同的是,k=1、2、3 时,分别表示出发时刻,所以要考虑到走完这段路程的时候灯的颜色是否已经变了//红绿黄循环。用sum记录前面路程用的总时间,circle记录红黄绿一轮的时间。是红灯时,判断t和sum的大小,如果t>sum说明红灯还没完,t-sum是剩余要等待的红灯时间;若t<sum说明红灯已经结束,sum-t是超出的时间,考虑到可能过去了不止一轮先求余,int temp=(sum-t)%circle,再判断temp是否超出了绿灯时间g,如果超出则又到黄灯,再判断是否超出黄..原创 2021-01-06 11:05:07 · 252 阅读 · 0 评论 -
CCF 201803-1 跳一跳 C++
//因为以0结束,输入不为0时便一直输入。用pre记录前一个输入,用a记录当前输入,用k记录连续2的个数,用sum记录和。判断是1还是2,如果是1直接加,如果是2根据前一个输入及连续2的个数决定加几。#include <iostream>using namespace std;int main(){ int a; int k=0,sum=0,pre=0; while(cin>>a) { pre=a; if(a==1) .原创 2021-01-06 11:21:14 · 149 阅读 · 0 评论 -
CCF 201803-2 碰撞的小球 c++
//用两个数组分别记录小球的位置和方向。对n个小球分别调整t轮,每一轮更新方向和位置,必须先更新方向再更新位置:到达最左端方向调整为向右,到达最右端方向调整为向左;相撞后方向取反;其他时刻向右走一步加1,向左走一步减1,可以统一表示为a[j]+b[j]。注意这n个小球的初始位置是无序的。#include <iostream>using namespace std;int main(){ int n,t,L; cin >> n >> L >&.原创 2021-01-06 15:04:18 · 396 阅读 · 0 评论 -
CCF 201712-1 最小差值 C++
#include <iostream>#include <cmath>using namespace std;int main(){ int n; int min=10001;//千万注意给min初始化个大数 cin >> n; int a[n]; for(int i=0;i<n;i++) { cin >> a[i]; } for(int i..原创 2021-01-06 15:25:39 · 103 阅读 · 0 评论 -
CCF 201712-2 游戏 C++
#include <iostream>using namespace std;int main(){ int n,k;//用n表示当前小朋友的总个数 cin >> n >> k; int del[n]={0};//记录被删除的小朋友编号 long long count=1;//记录当前数到的数 int m=n;//记录数组长度 while(n!=1) { for(int i=0;i<m..原创 2021-01-06 17:02:36 · 113 阅读 · 0 评论 -
include<bits/stdc++.h>
#include<bits/stdc++.h>包含了目前c++所包含的所有头文件,是个万能库。#include <iostream> #include <cstdio> #include <fstream> #include <algorithm> #include <cmath> #include <deque> #include <vector> #include <queue>转载 2021-01-06 20:13:55 · 11848 阅读 · 0 评论 -
CCF考试流程
作为一个计算机考研跨考生,练习了好几天,有的题来来回回看上一两个小时才能修正错误,我这正疑惑着ccf难道直接写代码提交,都没法调试的?今天才发现是可以先在编译器上调试成功后再粘贴上去提交的!发现一个考试流程的介绍,虽然好像2019年9月改革了可以看分了什么的,但是我还是没搞清楚是全部做完了能看到分还是每一道题都可以看到分,xdm走过路过有知道的告诉我一声哦,先谢过。这好像是个2018年的介绍,但是对什么都不懂的小白来说还是很有价值的,链接如下:CCF考试详细流程...原创 2021-01-06 20:31:45 · 2214 阅读 · 0 评论 -
CCF 201709-1 打酱油 C++ easy
//买5送2最划算,所以先尽可能多地分出50元,余下的再分出30元,剩余的10元一瓶即可。#include <iostream>using namespace std;int main(){ int n,a,b,c; cin >> n; a=n/50; b=(n%50)/30; c=((n%50)%30)/10; cout << 7*a+4*b+c << endl; return 0;}.原创 2021-01-06 20:52:38 · 164 阅读 · 0 评论 -
CCF 201703-1 分蛋糕 C++ need attention
a原创 2021-01-07 10:13:17 · 198 阅读 · 0 评论 -
CCF 201709-2 公共钥匙盒 C++ not easy
思路://需要用一个数组记录当前钥匙编号的序列,每一个时刻都要检查有没有拿走或返还,实时更新数组中钥匙的状态。//钥匙被拿走则置0,同一个时刻如果有多把钥匙被返还,则需要先排序再依次插入空位。//需要用一个数组记录当前钥匙编号的序列,每一个时刻都要检查有没有拿走或返还,实时更新数组中钥匙的状态。//钥匙被拿走则置0,同一个时刻如果有多把钥匙被返还,则需要先排序再依次插入空位。 #include <iostream>#include <set>typedef struc..原创 2021-01-07 11:32:38 · 171 阅读 · 0 评论 -
CCF 201612-1 中间数 C++ need attention
#include <iostream>using namespace std;int main(){ int n; cin >> n; int a[n]; bool flag; for(int i=0;i<n;i++) { cin >> a[i]; } for(int i=0;i<n;i++) { int small=0,big=0; for(int j=0;j<n;j++) { if..原创 2021-01-07 13:07:46 · 182 阅读 · 1 评论 -
CCF 201609-1 最大波动 C++ easy
#include <iostream>#include <cmath> using namespace std;int main(){ int n,pre,a,max=0,cha=0; cin >> n; cin >> pre; for(int i=1;i<n;i++) { cin >> a; cha=abs(a-pre); if(cha>max) max=cha; pre=a; } cout &.原创 2021-01-07 13:50:07 · 85 阅读 · 0 评论 -
CCF 201609-2 火车购票 C++
#include <iostream>using namespace std;int main(){ int n,p; int pos[101]={0}; int group[20]; for(int i=0;i<20;i++) { group[i]=5;//空位数 } cin >> n; for(int i=1;i<=n;i++) { bool flag=false;//有无连续空位 ,pay attention.原创 2021-01-07 14:46:51 · 176 阅读 · 0 评论 -
CCF 201604-1 折点计数 C++ easy
#include <iostream>using namespace std;int main(){ int n; int count=0; cin >> n; int a[n]; for(int i=0;i<n;i++) { cin >> a[i]; } for(int j=0;j<n-2;j++) { if((a[j+1]-a[j]>0&&a[j+2]-a[j+1]<0)||(a[j+1]-a..原创 2021-01-08 19:03:04 · 106 阅读 · 0 评论 -
CCF 201512-1数位之和 C++ easy
#include <iostream>using namespace std;int main(){ long long n; int sum=0; cin >> n; while(n!=0) { sum+=n%10; n/=10; } cout << sum << endl; return 0;}原创 2021-01-08 19:09:44 · 111 阅读 · 0 评论 -
CCF 201512-2 消除类游戏 C++ pay attention
#include <iostream>using namespace std;int main(){ int m,n; cin >> n >> m; int a[n][m]; int b[n][m]; for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { cin >> a[i][j]; b[i][j]=a[i][j]; } } for(int i=0;i&..原创 2021-01-08 20:05:01 · 123 阅读 · 0 评论 -
CCF 201509-1 数列分段 C++ easy
#include <iostream>using namespace std;int main(){ int n,count=1; cin >> n; int a[n]; for(int i=0;i<n;i++) { cin >> a[i]; } for(int i=0;i<n-1;i++) { if(a[i+1]!=a[i]) count++; } cout << count <<.原创 2021-01-08 20:13:47 · 157 阅读 · 0 评论 -
CCF 201503-1 图像旋转 C++ pay attention
#include <iostream>using namespace std;int main(){ int n,m; cin >> n >> m; int a[n][m],b[m][n]; for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { cin >> a[i][j]; } } for(int j=m-1;j>=0;j--) { for(int i=0;.原创 2021-01-08 20:55:31 · 76 阅读 · 0 评论 -
CCF 202006-2 稀疏向量 C++ pay attention
100分代码://先暂存u,v数组,然后将都不为0的项相乘相加,得到内积 #include <iostream>using namespace std;typedef struct point{ int index; int value;}point;int main(){ int n,a,b,c,d; long long sum=0; cin >> n >> a >> b; point u[a],v[b]; fo...原创 2021-01-09 16:31:07 · 177 阅读 · 0 评论 -
CCF 201912-2 回收站选址 C++ need attention
#include <iostream>using namespace std;typedef struct point{ int x; int y;}point;int main(){ int n; cin >> n; point a[n]; int b[5]={0}; for(int i=0;i<n;i++) { cin >> a[i].x >> a[i].y; } for(int i=0;i<n;i...原创 2021-01-09 19:08:12 · 133 阅读 · 0 评论 -
CCF 201703-2 学生排队 C++ easy but attention
#include <iostream>using namespace std;int main(){ int n,m,p,q; cin >> n >> m; int a[n]; for(int i=1;i<=n;i++) { a[i]=i; } for(int i=0;i<m;i++) { cin >> p >> q; for(int j=1;j<=n;j++) { if(a[j]..原创 2021-01-09 19:28:59 · 243 阅读 · 0 评论 -
CCF 201612-2 工资计算 C++ need attention
#include <iostream>using namespace std;int cal(int s){ int b; int a=s-3500; if(a<=1500) { b=s-0.03*a; } else if(1500<a&&a<=4500) { b=s-0.03*1500-(a-1500)*0.1; } else if(4500<a&&a<=9000) { b=s-0.03*15.原创 2021-01-09 20:45:31 · 123 阅读 · 0 评论 -
CCF 201412-1 门禁系统 C++ easy
#include <iostream>using namespace std;int main(){ int n; cin >> n; int a[n],b[n]; for(int i=0;i<n;i++) { cin >> a[i]; b[i]=0; } for(int i=0;i<n;i++) { for(int j=0;j<=i;j++) { if(a[i]==a[j]) { b[i].原创 2021-01-09 21:08:15 · 243 阅读 · 0 评论 -
CCF 201509-2 日期计算 C++ pay attentin
#include <iostream>using namespace std;int main(){ int y,d; int a[12]={31,29,31,30,31,30,31,31,30,31,30,31}; int b[12]={31,28,31,30,31,30,31,31,30,31,30,31}; cin >> y >> d; for(int i=1;i<12;i++) { a[i]+=a[i-1];//求前i+1个月的总.原创 2021-01-10 19:20:30 · 135 阅读 · 0 评论 -
CCF 201503-2 数字排序 C++ pay attention
#include <iostream>#include <algorithm>using namespace std;typedef struct point{ int num; int count;}point;bool cmp(point a,point b){ if(a.count==b.count) { return a.num<b.num; } else { return a.count>b.count; }}in.原创 2021-01-10 20:31:57 · 102 阅读 · 1 评论 -
CCF 201412-2 Z字形扫描 pay attention
思路:该题的关键在于找规律:一共有2n-1趟对角打印,偶数趟从下往上输出,奇数从上往下打印,且行号加列号总是等于趟数,故可以根据行号或列号的递增或递减规律,以行号或列号其中一个为基准,则另一个为趟数减去那一个。#include <iostream>using namespace std;int main(){ int n; cin >> n; int a[n][n]; for(int i=0;i<n;i++)//输入矩阵 { for(int j=0;j&.原创 2021-01-12 08:58:40 · 66 阅读 · 0 评论 -
CCF 201409-1 相邻数对 C++ count必须初始化切记!
#include <iostream>#include <cmath>using namespace std;int main(){ int n,count=0; cin >> n; int a[n]; //if(n==1) cout << "0" << endl; for(int i=0;i<n;i++) { cin >> a[i]; } for(int i=1;i<n;i++) { f.原创 2021-01-12 09:13:03 · 116 阅读 · 0 评论 -
CCF 201409-2 画图 C++注意思路
#include <iostream>using namespace std;int main(){ int n,x1,x2,y1,y2,count=0; int a[101][101]={0}; cin >> n; for(int k=0;k<n;k++) { cin >> x1 >> y1 >> x2 >> y2; for(int i=x1;i<x2;i++) { for(i..原创 2021-01-12 09:47:48 · 90 阅读 · 0 评论 -
CCF 201403-1 相反数 C++ 注意双等号
#include <iostream>using namespace std;int main(){ int N,count=0; cin >> N; int a[N]; for(int i=0;i<N;i++) { cin >> a[i]; } for(int i=1;i<N;i++) { for(int j=0;j<i;j++) { if(a[i]==-a[j]) { count++; .原创 2021-01-12 10:00:04 · 227 阅读 · 0 评论 -
CCF 201403-2 窗口 C++ pay attention
思路:对每个窗口,要同时设置一个编号id,和一个表示次序的num。编号是不变的,是为了最终输出;次序是要每次更新的,每次被点击的窗口要到最上面,被点击窗口原来上面的那些窗口则要下降一级。由于可能同时点击了多个窗口,所以要对这些窗口的上下次序排序,选择最上面的窗口。注意,没必要为了ignore定义个字符串数组,先用0代替,输出的时候特殊对待就行了。#include <iostream>#include <algorithm>typedef struct point{ in..原创 2021-01-12 11:09:23 · 160 阅读 · 0 评论 -
CCF 201312-1 出现次数最多的数 C++ easy
思路:用一个可变长数组存放当前个数最多的数,如果有个数更多的数出现,则把数组中所有的数删除,让当前个数最多的数进去;如果出现个数最多且一样多的数,则也进去。最后再取数值最小的一个数输出。#include <iostream>#include <vector>using namespace std;int main(){ int n,count=0,max=0,min=0; vector<int> v; cin >> n; int a[n];.原创 2021-01-12 11:36:34 · 224 阅读 · 0 评论