记录蓝桥杯校内选拔复习

总体来讲,假复习。回顾了笔记和算法竞赛入门的ppt和自己大二第一学期写的算法题,但都是大概去理解了下,感觉就像高中考数学似的,去看看概念,然后到考试之后啥都不会。尽管是假复习,但还是有点心得的。

心得:
一、做算法题
1、写前,理解题意,得出思路(用手写来模拟,然后想下大概用什么算法或者数学知识)
提醒:手算会了,一般写代码就会了,只要换下思维。
2、写时,每一个逻辑都要验证(比如循环的开始和结束)
3、写后,仔细检查下算法
二、选择算法
1级、暴力,dsf
2级、贪心
3、递归、回溯、动态规划
4、数学知识
其他:堆栈

三、算法理解
1、动态规划:自下而上,大问题分解为小问题,且大小问题有关联。
例题:石子合并,割绳子,数塔问题等等
2、回溯法:可以放回+dsf
例题:迷宫,n皇后等等
3、贪心算法:判断是不是类似用最短的时间拿最多或者最少的东西
例题:单源最短路径,旅游商问题
4、递归:通过重复将问题分解为同类子问题而解决问题的方法
例题:n!,全排列,构建二叉树
5、联系
①动态规划,递归
与子问题是否相关
②动态规划,回溯法
是否可以返回
6、数学
①10由5和2组成,算零个数
②判断数字有无0到9,用除法运算和模运算
③图问题,可以运用改变图
④求余问题,中国剩余定理
⑤a和b的最小公倍数c和最大公因数d的关系:ab=cd
⑥辗转相除法求得最大公因数
⑦与二进制有关的问题可以用位运算解决,或|,与&,非~,异或^,位移<<和>>
⑧概率

四、思维
计算机机思维是整体性思维
例:单源最短路径算时,就算无路的也要算上去
全球变暖是一个一个循环下去

五、考试注意:
1、for(int i;)是错误的
2、注意数据规模

六、不足
1、算法设计技术不行,一般一道题就是一天

七、函数
1、字符串有关
头文件<string.h>
①strlen
②strcat
③strcmp
④strcpy
2、数学
头文件<math.h>
①sqrt
②abs
3、快速排序
头文件 <stdlib.h>
qsort(a,n,sizeof(a[0]),cmp)
cmp(const void * a,const void * b){
return (int *)*a -(int *)b}
3、随机函数
头文件<time.h><stdlib.h>
srand((unsigen)time(NULL))
rand()/(RAND_MAX+1)
rand()%n

发布了9 篇原创文章 · 获赞 1 · 访问量 267

猜你喜欢

转载自blog.csdn.net/qq_42757083/article/details/103433074