CCF相关
CCF相关
晴空_万里
条条框框框住的是行为,而不是大脑。
展开
-
(算法练习)——201412-2 Z字形扫描(CCF模拟)
这一题比较有意思,初看仿佛很复杂,如果严格执行n * n的大小,感觉还是比较复杂的,要分上边下边来讨论,其实这一题完全可以换个思路把n*n扩展成2n * 2n,也就是相当于把给的图形上下再延展一半,先初始化所有数据都为0,然后存数据,读取的时候如果不为0,用一个标志为signal标记,为奇数该怎么读,为偶数该怎么读(实现每次掉头)这一题的题目真的很友好了,正整数、不超过500个,可不就是方便这...原创 2020-02-27 23:11:38 · 184 阅读 · 0 评论 -
(算法练习)——201412-1门禁系统(CCF模拟)
这一题一开始理解错了题意,对于每个读者的编号并非是从1开始顺序的,也就是说,可能会出现这样的输入数据:51 1 100 2 3一开始还用了两个数组、set,提交只有40分= =重写了一遍,只用两个数组,配合着表示就可以了(其实这一题一个数组肯定也是可以的)AC代码:#include <stdio.h>#include <algorithm>using nam...原创 2020-02-27 22:07:35 · 324 阅读 · 0 评论 -
(算法练习)——201409-3字符串匹配
良心第三题~暴力匹配的,如果遇到不敏感,那么把原始的字符串和后面输入需要匹配的字符串都转成小写来处理(同样也可都转成大写)在匹配的时候内层套个while循环,从每一位开始看能不能匹配到标准字符串的末尾,成功,break,记录这个字符串AC代码:#include <stdio.h>#include <string>#include <iostream>...原创 2020-02-19 12:55:49 · 175 阅读 · 0 评论 -
(算法练习)——201409-2画图
hash直接解决(这大概是做的最简单的第二题了。。)AC代码:#include <stdio.h>#include <math.h>bool hhash[105][105];int main(){ for(int i = 0;i <=100;i++){ for(int j = 0;j <= 100;j++){ hhash[i][j] = ...原创 2020-02-19 12:22:22 · 247 阅读 · 0 评论 -
(算法练习)——201409-1相邻数对
AC代码:#include <stdio.h>#include <math.h>int main(){ int n,cnt = 0; int ans[1000]; scanf("%d",&n); for(int i = 0;i <n;i++){ scanf("%d",&ans[i]); if(i >0){ for(i...原创 2020-02-19 12:10:50 · 202 阅读 · 0 评论 -
(算法练习)——201403-3命令行选项(CCF模拟)
90分代码。。。改不动了。。。代码:#include <stdio.h>#include <map>#include <sstream>#include <string.h>#include <string>#include <iostream>using namespace std;map<char...原创 2020-02-19 12:03:11 · 191 阅读 · 0 评论 -
(算法练习)——201403-2窗口(CCF模拟)
这一题用的三维数组hash表,但这一题坑的是一个窗口点击之后,它就成了第一层,原来的第1成了第2,依次类推,所以我是用一个临时temp数组去存每一位的层数,保证从N-1的层号,按第一层、第二层依次放置。一开始hhash[temp[linshi]][x][y] == true 这个判断条件写成了hhash[linshi][x][y] == true,这是错的,因为最后temp数组里存放的才是层号...原创 2020-02-18 12:21:46 · 125 阅读 · 0 评论 -
(算法练习)——201403-1相反数(CCF模拟)
暴力大法~AC代码:#include <stdio.h>#include <algorithm>using namespace std;int main(){ int N,cnt = 0; scanf("%d",&N); int num[500]; for(int i = 0;i <N;i++){ scanf("%d",&num...原创 2020-02-18 09:43:24 · 138 阅读 · 0 评论 -
(算法练习)——201312-3最大的矩形(CCF模拟)
emmm这一题1000*1000的时间复杂度还可承受,暴力大法~不过这题更好的解法应该是动态规划?有时间再重写把~要注意的是两处max用好很关键AC代码:#include <stdio.h>#include <algorithm>#include <math.h>using namespace std;int main(){ int n; ...原创 2020-02-17 15:42:50 · 139 阅读 · 0 评论 -
(算法练习)——201312-1出现次数最多的数(CCF模拟)
水题~AC代码:#include <stdio.h>#include <algorithm>using namespace std;int hhash[10010];int main(){ int n; scanf("%d",&n); for(int i = 1;i <= 10000;i++){ hhash[i] = 0; } i...原创 2020-02-17 14:39:43 · 176 阅读 · 0 评论 -
(算法练习)——201312-2ISBN号码(CCF模拟)
水题不解释~AC代码:#include <stdio.h>#include <algorithm>#include <string>#include <iostream>using namespace std;int main(){ string str; cin>>str; int ans = 0; int cn...原创 2020-02-17 14:36:59 · 131 阅读 · 0 评论 -
(算法练习)——201709-2公共钥匙盒(CCF模拟)
这一题简直要吐血= =从昨天下午开始搞,写了三版,想了数组、队列、结构体,但总是有步骤不对,好像哪里没有整合到一块,零零散散的感觉。。今天睡一觉起来就觉得有思路了,吃过饭写了一会,可算搞出来了~(PS:这要是考试可怎么办= =)说下思路:1、用结构体存每个ID的信息,主体是time,想要让它们顺着一维的时间去执行,打个比方,编号1在10拿钥匙,拿了7小时,也就是17放回钥匙,那么就记录两条信...原创 2020-02-17 10:10:23 · 269 阅读 · 0 评论 -
(算法练习)——201709-1打酱油(CCF模拟)
while即可,纯水题AC代码:#include <stdio.h>int main(){ int N; scanf("%d",&N); int cnt = 0; while(N>0){ if(N >= 50){ cnt = cnt + 7; N = N - 50; } else if(N >= 30 &&...原创 2020-02-16 15:15:44 · 165 阅读 · 0 评论 -
(算法练习)——201712-2游戏(CCF模拟)
这一题和之前在C语言网上的一题很相似,循环报数,传送门:(算法练习)——循环报数问题循环报数问题要求:1、给定数字是3,到3就出队,看最后剩下的人编号2、这是循环报数,即1,2,3,1,2,3这样报数本题要求:1、任给学生人数、数字,这个很好办,因为计算方式都是一样的2、这是人数循环,但数字不循环,即在有限的人里,1,2,3,4,5这样依次报数下去处理方式:这种问题用队列真的非常...原创 2020-02-16 11:37:45 · 203 阅读 · 0 评论 -
(算法练习)——201712-1最小差值(CCF模拟)
用sort函数,再遍历一遍,后面的数-前面的数,保留最小差值,一次AC~代码:#include <stdio.h>#include <algorithm>using namespace std;int main(){ int n; int num[1000]; scanf("%d",&n); for(int i = 0;i <n;i++){...原创 2020-02-16 10:01:23 · 138 阅读 · 0 评论 -
(算法练习)——201803-2碰撞的小球(CCF模拟)
这一题没有思路,因为严格考虑小球碰撞的话,会觉得很乱,无从下手= =参考大佬的代码:https://blog.csdn.net/SongBai1997/article/details/81175312这题对于map的使用很巧妙,应该记下来,后面再遇到这种相对位移的题,都可以考虑下mapAC代码:#include <stdio.h>#include <map>#...原创 2020-02-15 11:42:15 · 295 阅读 · 0 评论 -
(算法练习)——201803-1跳一跳(CCF模拟)
这一题为了统计是不是连续跳到2,使用了symbol作为标志,遇到2,就置为1或者先++再计算AC代码:#include <stdio.h>#include <math.h>int num[50];int main(){ int signal = 0; int symbol = 0; int cnt = 0; while(scanf("%d",&n...原创 2020-02-15 09:47:44 · 196 阅读 · 0 评论 -
(算法练习)——201809-2买菜(CCF模拟)
现在看到这种区间线段的题条件反射就想到了hash(似乎除了hash也想不出别的啥好办法)不过这一题给的最大数是1000000,如果再用上2000,2000*1000000=2000000000(20亿次)也是生命不可承受之重了= =不过一次就AC了~就不去想其他啦话说回来,CCF的前两题感觉确实是送分题,争取都拿下(拿满分)才是最重要的~代码:#include <stdio.h&g...原创 2020-02-13 10:05:07 · 178 阅读 · 0 评论 -
(算法练习)——201809-1卖菜(CCF模拟)
比较简单,不解释~AC代码:#include <stdio.h>#include <math.h>int main(){ int num[1000]; int n,pingjun; scanf("%d",&n); for(int i = 0;i <n;i++){ scanf("%d",&num[i]); } for(int i...原创 2020-02-13 09:36:30 · 141 阅读 · 0 评论 -
(算法练习)——201812-2小明放学(CCF模拟)
这一题特别想吐槽,一开始考虑错了,在纸上画不清楚,后来重新拿了草稿纸,确定划得对了,提交,60分!!!why!!后来注意到范围的问题,于是把变量统统改成了long long,却只把输出改成了ld,依然只有60分!!再后来终于意识到long long的输出,也要lld,这才正确= =太辛酸了。。考虑思路如下:1、红绿灯会循环,先让linshi%(r+g+y),得到的数对应是如果走完了循环,那么...原创 2020-02-12 13:07:18 · 204 阅读 · 0 评论 -
(算法练习)——201812-1小明上学(CCF模拟)
只有一点要注意,黄灯过了是红灯,要另外等一个红灯的时间虽然题目给出的灯的时间顺序是红、黄、绿,但实际上循环的顺序是红、绿、黄,搞清这个这题就解决了AC代码:#include <stdio.h>#include <string.h>int main(){ int r,y,g; int n; int signal,tm; int linshi = 0; s...原创 2020-02-12 09:45:55 · 163 阅读 · 0 评论 -
(算法练习)——201903-2二十四点(CCF模拟)
人生第一次C的代码写了200+行快300行。。。无他,if else穷举大法,居然一次AC了= =事实上这一题用栈,构建后缀表达式是最好的算法,但我翻了书上那一块的代码也很长= =没办法,太懒了,,改天再写栈的算法吧。。好在这一题444=64,穷举了64个还可以忍受(其实复制粘贴到吐血= =),换成256那这题只有构建栈了(这方法真是懒人方法,再说一遍并不推荐= =当然考试的时候能到分不就...原创 2020-02-11 20:27:25 · 588 阅读 · 1 评论 -
(算法练习)——201903-1小中大(CCF模拟)
其实用优先队列这题更快?AC代码:#include <stdio.h>#include <algorithm>#include <vector>using namespace std;int yuanshi[100000];int linshi[100000];double record[3];int main(){ int n; sc...原创 2020-02-08 22:08:34 · 148 阅读 · 0 评论 -
(算法练习)——201912-2回收站选址(CCF模拟)
这一题理解题意理解了好一会= =开始用hash数组写了一个,写完了才发现坐标不止正数,还有负数啊!!负数还很大啊!!!众周所知数组下标-99999这种什么鬼?所以写了第二版,纯用结构体,然后上下左右和四角有没有垃圾的方法也没那么复杂,就是代码稍长,不好看。。。顺便说一句,这题的题目给的很详细了,如果变变,不给到那么细致的x±y这种,估计更不好想了这是AC的代码:#include <...原创 2020-02-08 16:02:42 · 303 阅读 · 0 评论 -
(算法练习)——201909-2小明种苹果(续)(CCF模拟)
增加了苹果掉落、排成圆循环的情况偷懒的方法,emmm应该可以用队列?代码:#include <stdio.h>#include <string.h>const int maxn = 1000;bool hhash[maxn] = {false};int numrecord[maxn];int main(){ int sum = 0,linshi,N,...原创 2020-02-08 12:17:32 · 176 阅读 · 0 评论 -
(算法练习)——201909-1 小明种苹果(CCF模拟)
emmm,不难,暴力#include <stdio.h>#include <iostream>using namespace std;int record[1000];int numrecord[1000];int main(){ int N,M; int zong = 0,linshi; //总果数,每一行总疏果数,第几行 int num = 0...原创 2020-02-08 10:15:07 · 195 阅读 · 0 评论 -
(算法练习)——CCF模拟【报数】
趁热打铁记录一下主要就是判断与7相关~#include <stdio.h>int main(){ int num; int a=0,b=0,c=0,d=0; scanf("%d",&num); for(int i=1;i<=num;i++){ if(i%7==0||i/100==7||i%10==7||i/10%10==7){ if(...原创 2020-01-29 17:22:07 · 425 阅读 · 0 评论