每日小语
圣人不执著于是非的争论而依顺自然均衡之理。——庄周
自己思考
bbc这里指的是蓝桥杯缩写,蓝桥杯300元,emmm,明年大概4月16日考,会考枚举什么的,目前就知道这些。
过几日可能就要报名了,我打算报考c语言b组吧,是一个契机,只是希望能多领悟一些思想,在备赛过程中获得感悟,关于这个的学习我打算开一个新的专栏,至于能不能坚持下去,就要顺应天命了,我想过早承诺总是就先噶了。
emmmmm反正慢慢来吧,希望它能激发我对知识的热情,让我有一种天天不做一道手痒的快乐。
就目前打算一周弄懂一道题。深深的体悟思想吧,太多的看以后有没有时间,我害怕有可能是两周一道。
新的旅程总是充满未知与挑战,快乐与苦难并存,不希望自己坚持下去,只是希望碰一碰,撞一撞,抬起头来再看一下自己的真实模样。
小小的想法
首先打算跟学【蓝桥杯比赛】视频教程(入门学习+算法辅导)b站课程,打算慢慢啃完,其次打算学习50并完成lab和问题集。
比赛机制了解
题型:结果填空,编程填空,编程大题。
注意事项
注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。选手的程序必须是通用的,不能只对试卷中给定的数据有效。
仔细阅读程序的输入、输出要求,千万不要输出没有要求的、多余的内容,例如: "请您输入xx数据:
建议仔细阅读示例,不要想当然!
程序必须使用标准输入、标准输出,以便于机器评卷时重定向。
注意事项(C/C++ 组)
程序处理完一个用例的数据后, 立即退出(return 0),千万不要循环等待下一个用例的输入。
对于编程题目,要求选手给出的解答完全符合ANSIC++标准,不能使用诸如绘图、Win32API、 中断调用、硬件操作或与操作系统相关的API。
代码中允许使用STL类库。
注意: main函数结尾需要return 0;
注意所有依赖的函数必须明确地在源文件中sinclude ox.不能通过工程设置而省略常用头文件。
所有代码放在同一个源文件中, 调试通过后,拷贝提交该源码.
提交时,注意选择所期望的编译器类型。
算法的复杂度是评估算法性能优劣-个重要的指标,可以帮助信息学竞赛选手估算出算法在执行之后所需要的时间和空间,所以分析算法的复杂度几乎成了每个选手必须掌握的能力。
算法的复杂度分为算法的时间复杂度和空间复杂度。在介绍时间复杂度之前,我们需要引入时间频度的概念。时间频度是指算法中语句的执行次数,用T(n)来表示,n为问题的规模。
有些时候,时间频度的表达方法有点复杂,我们需要更直观的表达方法,于是引入了时间复杂度的概念。
如果有一个辅助函数f(n),在n趋向于无穷大时,T(n)/f(n) 的极限值为不等于0的常数,则我们近似的将f(n)替代T(n),记为T(n) = O(f(n)),称为算法的渐进时间复杂度。
所以我们一定要考虑这个时空间复杂度的问题。
时间复杂度只关心算法中最耗时的部分,舍去常数部分,通常用简单的函数来表示。例如,某算法计算出来T(n)= 2n3十4n2十n,则它的时间复杂度为O(n3)。按效率从高到低排列,时间复杂度-般有以下几种:
常数阶:o(1)
对数阶:o(logn)一般是while
线性阶:o(n)
线性对数阶:o(nlogn)
平方阶:o(n^2)for
立方阶:o(n^3)
指数阶:o(2^n)
阶乘阶:O(n!)for
n的阶乘是大于n的3次方的。
我们举个例子来描述下算法时间复杂度的计算过程吧。现有如下代码,可以计算出语句1执行了n^2次,语句2执行了n次,语句3执行了logn次,则T(n)=n2 +n + logn,取其中最耗时部分,并用熟悉的函数表示,则时间复杂度为O(n^2)。
时间复杂度看似高大上,其实就是代码运行的步数。
空间复杂度其实就是所占用的内存
那么到这里p2就结束了,撒花花~