![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CCF
MORE_77
做研究,对一个东西要有自己的认识,才能做出不一样的东西来。
展开
-
29次-CCF-第一题-田地丈量
离谱,这个题考试的时候做了30+min才写出来,但是代码还贼简单。你说它难吧,代码这么简单,你说不难吧,我在这个题还卡了那么久。(菜鸡痛哭)正话:题目的意思就是 计算两个给了坐标的矩形的重合面积,怎么计算呢?——计算重合矩形的坐标。先考虑可以重合的情况,就会发现。原创 2023-04-26 21:13:54 · 516 阅读 · 0 评论 -
CCF 日期计算
记住这些技巧就好:原创 2023-03-25 09:22:25 · 47 阅读 · 0 评论 -
CCF 稀疏向量
【代码】CCF 稀疏向量。原创 2023-03-20 14:24:33 · 36 阅读 · 0 评论 -
CCF 非零段划分-差分法
差分法p足够大,所有的数都被海水淹没了,只有0个岛屿:海平面逐渐下降,岛屿数量出现变化。每当一个凸峰出现,岛屿数就会多一个;每当一个凹谷出现,原本相邻的两个岛屿就被这个凹谷连在一起了,岛屿数减少一个。差分法是最简洁的解题程序。数组元素d[i]中存储该元素被替换为0时,划分数变化的差分值。最大值则只需要从其前缀和(程序中实际为后缀和)中找出最大值就是所要的结果。程序代码中,STL算法函数unique()用来去除相邻重复的元素。语句用来设置边界值,起辅助计算作用,可以简化程序代码。原创 2023-03-20 14:23:10 · 160 阅读 · 0 评论 -
CCF 序列查询新解
划分,按照f()g()对1~N进行划分具体思路看代码把,注释很详细!原创 2023-03-20 14:17:14 · 198 阅读 · 0 评论 -
CCF 出行计划-打表
【代码】CCF 出行计划-打表。原创 2023-03-20 14:14:52 · 36 阅读 · 0 评论 -
CCF 未初始化警告
分析记录:用数组a[n+1]记录,变量是否被初始化:a. 每次输入一行命令,就需要记录当前在左边的变量a[x]=1判断:是否本句是否被初始化了:a. 如果右边变量为常数0b. 如果右边变量前面被初始化过,即a[y]=1代码#include<iostream>#include<algorithm>#include<math.h>#define N 100000+2using namespace std;int n,k;int a[N];int原创 2023-03-20 14:15:13 · 170 阅读 · 0 评论 -
CCF角色授权vector超时70分
vectormap。原创 2023-03-20 14:13:44 · 115 阅读 · 0 评论 -
CCF 2022.6.2 寻宝大冒险
暴力搜索对比,就好了。时间复杂度O(nS),离谱子,这样居然都没超时。原创 2023-03-20 14:11:40 · 155 阅读 · 0 评论 -
CCF 2022.12.2 训练计划
MinMin最后判断能不能训练完,来决定是否输出就好。原创 2023-03-20 14:01:40 · 218 阅读 · 0 评论 -
CCF 何以包邮--回溯法
long long。原创 2023-03-20 13:50:00 · 62 阅读 · 0 评论 -
CCF-29次-第二题垦田计划100分
比赛的时候100AC了,但现在是仅凭印象敲出来的代码,不确定是否会存在一些问题,等题目出来了,AC后,我再回来填坑,现在仅供参考。原创 2023-03-20 12:11:51 · 1528 阅读 · 2 评论 -
CCF 有趣的数
题目分析递归超时了(of course)动态规划可以解决时长问题,后续跟新吧20分代码(递归)#include<bits/stdc++.h>using namespace std;int sum=0;int n;void f(int x,int y,int v,int u,int num) { if(num==n-1) { sum++; if(x==0 || y==0||v==0||u==0) sum--; return; } if(u==0) { /原创 2021-09-18 10:36:52 · 52 阅读 · 0 评论 -
CCF数塔(要求输出路径 递归)
题目数塔【问题描述】给定一个数塔,如下图所示。在此数塔中,从顶部出发,在每一节点可以选择走左下或右下,一直走到底层。请找出一条路径,使路径上的数值和最大。【输入形式】输入时第一行一个整数n,表示该数塔的行数,其余n行表示该塔每行的数值【输出形式】输出包含两行,第一行为最大路径上的数值之和, 第二行n个数字为从上而下最大路径数值【样例输入】5912 1510 6 82 18 9 519 7 10 4 16【样例输出】599 12 10 18 10分析输出路径这一要求就很原创 2021-09-16 19:52:14 · 276 阅读 · 0 评论 -
CCF 最少钱币数(递归)
题目 最少钱币数【问题描述】这是一个古老而又经典的问题。用给定的几种钱币凑成某个钱数,一般而言有多种方式。例如:给定了 6 种钱币面值为 2、5、10、20、50、100,用来凑 15 元,可以用 5 个 2 元、1个 5 元,或者 3 个 5 元,或者 1 个 5 元、1个 10 元,等等。显然,最少需要 2 个钱币才能凑成 15 元。你的任务就是,给定若干个互不相同的钱币面值,编程计算,最少需要多少个钱币才能凑成某个给出的钱数。【输入形式】输入可以有多个测试用例。每个测试用例的第一行是待凑的钱数原创 2021-09-16 19:47:09 · 112 阅读 · 0 评论 -
CCF 集市竞价
题目分析坑1 需要用long long不然只有80分坑2 需要分别记录买入交易量和卖出交易量,取较小值为最终确定交易量坑3 取消行数,但是取消这个操作也占据了行数题目不难,本来是想排序操作下的,结果发现暴力解也可以,主要是就避免下坑坑3我是采用即使取消这个操作没有数据 我也新建一个node it加入向量,占据行数AC代码#include<bits/stdc++.h>using namespace std;struct node { double p;//值 int原创 2021-09-14 10:03:20 · 67 阅读 · 0 评论 -
CCF 画图
题目代码#include<bits/stdc++.h>using namespace std;int a[101][101];int main(){ int t; cin>>t; int x,xx,yy,y; while(t--){ cin>>x>>y>>xx>>yy; for(int i=x;i<xx;i++){ for(int j=y;j<yy;j++){ a[i][j]=1;原创 2021-09-13 14:36:57 · 124 阅读 · 0 评论 -
CCF 俄罗斯方块
题目分析最开始一看题就觉得好简单,一做 好难,做出来后又觉得好简单,害心情复杂。就是不要想太多,暴力解,一旦到了a的新的一个4*4的方阵后就与b进行判断就行了主要还是处理数据上小心点就好了还有就要需要考虑直接落在了底端的情况代码有详述,不多说了,应该都能看懂AC代码#include<bits/stdc++.h>using namespace std;int a[15][10];int b[4][4];int t;//将b映射到a相应位置的函数void f(int原创 2021-09-12 16:53:21 · 116 阅读 · 0 评论 -
CCF 学生排队
题目分析思路:①数组中,node记录学生的id和位置,目前数组的下标+1=学生id;②通过计算改变学生的位置数值weizhi;③按着位置数值weizhi排序,最后按着顺序输出学生id。本来是想用数组模拟过程的,写的过程中就发现太复杂了,也觉得不可能这么智障地解题;写着写着突然产生了这个思路,欸,觉得这个方法不错,挺简单的,感觉略略巧妙hhhhh。代码#include<bits/stdc++.h>using namespace std;struct node { int原创 2021-09-11 21:10:18 · 180 阅读 · 2 评论 -
CCF 公共钥匙盒
题目分析其实把借和还看成两个部分,然后按时间排个序,再按着其他的要求,按顺序对钥匙盒子数组进行操作就行了,这样想就很简单之前陷入了思维误区,各种循环判断,快被逼疯。害。AC代码#include<bits/stdc++.h>using namespace std;struct node { int id; int time; int state;//0 拿 1 huan};bool cmp(node l,node r) { if( l.time !=r.time )//按原创 2021-09-11 20:29:45 · 150 阅读 · 0 评论 -
CCF 小明上学
题目分析还是得用取余判断的方法,最开始用while超时了,只得了80并且要用 long long并且黄灯不能过并且出发时间是指最开始从0时刻开始AC代码#include<bits/stdc++.h>#define N 99999using namespace std;struct node { long long x,y;};node a[N];int main() { long long r,y,g; cin>>r>>y>&g原创 2021-09-09 19:36:05 · 62 阅读 · 0 评论 -
CCF-二十四点
题目分析由于题目中说了,不存在括号以及只有四个数字和三个符号,因此运算形式其实是比较单一的,如果不采用栈,也可以直接分类讨论运算思路:分类:①只有+ -或者只有x / ,这种情况就直接按顺序运算即可;②+ - 和 x / 混杂:步骤:SP1:需要先计算x /,并且把计算的值储存在另开辟的数组中,将原字符串中运算过的数字和符号修改为与储存位置相关的字符(我采用的是 下标+‘a’);SP2:再判断+ - 符号的位置,进行+ -运算;还有另外一种方法,就是用两个栈,一个存字符,一个存数字原创 2021-09-09 10:58:04 · 108 阅读 · 0 评论 -
CCF 小明种苹果
题目AC代码#include<bits/stdc++.h>using namespace std;int sum=0;int sum2=0;int sum3=0;struct node { int num;//数目 bool fall;//是否掉落 };int main() { int n,m; cin>>n; node*a=new node[n];//储存果树 for(int i=0; i<n; i++) { a[i].fall=fal原创 2021-09-09 10:16:06 · 68 阅读 · 0 评论 -
CCF-报数
题目分析暴力解决就好了,分别用两个数记录,num是正常数需要被判断的数,count是记录未被跳过的数的个数,采用数组和求余的方式记录甲乙丙丁的跳过情况100分 AC代码#include<bits/stdc++.h>using namespace std;int a[4];bool pd(int num) { if(num%7==0)//7的倍数 return true; while(num!=0) { int x=num%10; if(x==7)//含数字7原创 2021-09-09 09:31:43 · 161 阅读 · 0 评论 -
CCF-期末预测之最佳阈值 100分
题目分析如果常规做法,时间复杂度为n²,会超时,只能获得70分采用利用上一个来推下一个的方法,时间复杂度为n,获得100分因为题目样例不是很明显,这里举一个更明显的样例三:【输入】50 00 11 01 11 0【输出】1【样例分析】输出x,z0 20 11 21 21 2对输入数据按着x,y的从小到大进行排序(如样例一)难点一:利用前一个预期值计算下一个预期值计算第一位的预期值,接着从第二位开始利用前一个预期值进行计算:原理:实际上,相邻两个数的预期值的原创 2021-09-08 09:17:07 · 378 阅读 · 0 评论 -
CCF--火车购票(暴力遍历)
分析题目简单,暴力遍历就好,看下写出来的代码,好丑,三个叠加的for循环,好家伙,时间复杂度已经是n的三次方了嘛,可怕可怕。有大佬写的简便代码可供参考吗?希望大家能在评论区或私聊一起讨论#include<bits/stdc++.h>using namespace std;int a[21][6]= {0};int main() { int t; cin>>t; int n; while(t--) { cin>>n; bool c=false.原创 2021-08-24 10:13:23 · 119 阅读 · 0 评论 -
CCF--校门外的树
分析SP1:因为电线杆中间间距为0 or 1 是无法种树的,且如若种树的间距为电线杆间距也是无法种植的,因此求出2-坐标上限的数字(间距)除开自己以外的因数即可,储存在向量数组v中。SP2:输入数据,将电线杆坐标信息储存在数组a中SP3:开始计算种树可能性:i循环下,计算从第一根电线杆到第i根电线杆的种树情况,记录在f[i]中;j循环下,计算以 j 到 i 为一个区间的情况下,种树情况cnt,f [ i ] = cnt*第1根电线杆到第j根电线杆的总种树情况+以j+1(+2,+3…)到i为区间的.原创 2021-08-23 11:09:10 · 693 阅读 · 0 评论 -
CCF 14年12月第二题 Z字形扫描
题目描述代码描述#include<iostream>using namespace std;int main() { int n; cin>>n; int a[n][n]; for(int i; i<n; i++) { for(int j=0; j<n; j++) { cin>>a[i][j]; } }//输入数据 int i=0,j=0;//控制数组里的数字 int t=0;//控制循环次数 if(n%2==0原创 2021-05-18 21:09:51 · 90 阅读 · 0 评论 -
CCF 2014年12月第一题门禁系统
题目描述#include<iostream>using namespace std;int a[1001];//全局变量,保证数组内部是0int main(){ int n; cin>>n; while(n--){ int b; cin>>b; a[b]++;//记录编号为b的人来过一次 cout<<a[b]<<" ";//输出他的来访结果 } cout<<endl;}...原创 2021-05-16 22:44:21 · 100 阅读 · 0 评论 -
CCF考试 2014年3月第2题窗口
题目描述核心 解题思路整个题最麻烦的地方是,前面点击了的窗口会移动到最前面来,影响后方的点击判断,于是这里我采用了两个核心思想解决这个问题与输入顺序相反的顺序来依次判断窗口与点击 (保证了优先判断被放在前面的窗口)将被点击的窗口(判断成功了的窗口)增加 放在数组的后方 (保证保留前述点击的影响)为了实现上述思想则第一步储存窗口的数组就要留够空间,即如代码所示,开辟了W[n+m],而不是W[n]第二步,for循环里是i=n+k-1,k初始值为0,如果后续判断成功,则k++;原创 2021-05-09 21:19:21 · 213 阅读 · 0 评论 -
CCF 考试 2020年06月第2题 稀疏向量
题目描述:易出现的两个问题:①一个是不可以用数组下标作为维度,因为数组下标是有界限的,因此当声明数组,元素个数过大的时候,并不安全②还有一个就是内积的数据类型,要声明为long long型的,因为内积可能很大,如果不注意,这里会出错如果不注意这两点,就会是60分,40%的样例无法通过,会报编译错误。#include<iostream>using namespace std;int main() { long long n; int a,b; cin>>n>原创 2021-05-05 13:08:03 · 86 阅读 · 0 评论 -
CCF考试 2020年12月第2题 期末预测之最佳阈值
题目描述:原本的思路:采用两个for循环,按着题目意思,时间复杂度为n2,的得分为85,一部分样例超时了原本的代码:#include<bits/stdc++.h>using namespace std;int main(){ long long n; cin>>n; int *a=new int[n]; int *b=new int[n]; int *c=new int[n]; for(long long i=0;i<n;i++){ cin>原创 2021-05-04 16:28:53 · 386 阅读 · 0 评论 -
CCF考试 2021年4月第2题 邻域均值
时间限制: 1.0 秒空间限制: 512 MiB题目背景顿顿在学习了数字图像处理后,想要对手上的一副灰度图像进行降噪处理。不过该图像仅在较暗区域有很多噪点,如果贸然对全图进行降噪,会在抹去噪点的同时也模糊了原有图像。因此顿顿打算先使用邻域均值来判断一个像素是否处于较暗区域,然后仅对处于较暗区域的像素进行降噪处理。题目描述待处理的灰度图像长宽皆为 n 个像素,可以表示为一个 n×n 大小的矩阵 A,其中每个元素是一个 [0,L) 范围内的整数,表示对应位置像素的灰度值。 对于矩阵中任意一个元素 Ai原创 2021-05-05 20:59:47 · 1127 阅读 · 0 评论