NOI系列比赛支持语言
根据国际信息学奥林匹克竞赛(IOI)的相关决议并考虑到我国目前程序设计语言的具体情况,CCF决定:
1.2020年开始,除NOIP以外的NOI系列其他赛事(包括冬令营、CTSC、APIO、NOI)将不再支持Pascal语言和C语言;
2.从2022年开始,NOIP竞赛也将不再支持Pascal语言。即从NOIP2022开始,NOI系列的所有赛事将全部取消Pascal语言;
在无新增程序设计语言的情况下,NOI系列赛事自NOIP2022开始将仅支持C++语言。
二进制相关
1.二进制数的表示:
2.源码、反码、补码:
以下默认均为二进制数
3.c++中各种类型的表示范围:
int: \(-2^{31}\) ~ \(2^{31}-1\)
unsigned int:\(0\) ~ \(2^{32}-1\)
long long :\(-2^{63}\) ~ \(2^{63}-1\)
unsigned long long : \(0\) ~ \(2^64-1\)
计算机内存单位及换算
1 B = 8b (b = bit 比特, B = Byte 字节)
1 KB = 1024 B
1 MB = 1024 KB = 1048576 B
1 GB = 1024 MB
1 TB = 1024 GB
1 PB = 1024 TB
各种排序及其时间复杂度、空间复杂度和稳定性
稳定性:能否保证满足同样大小的数排序后按照原来的位置关系。如从小到大排序时,所有满足\(a_i<a_j\)且\(i<j\)的两个数排序后仍满足\(a_i\)在\(a_j\)前面
排序方法 | 时间复杂度 | 空间复杂度 | 稳定性 |
---|---|---|---|
快速排序 | 一般\(O(n log n)\),最坏情况下\(O(n^2)\) | \(O(logn)\) | 不稳定 |
shell 排序(希尔排序) | \(O(n^2)\) | \(O(1)\) | 不稳定 |
堆排序 | \(O(nlogn)\)(直接在原序列上建立堆) | \(O(1)\) | 不稳定 |
选择排序 | \(O(n^2)\) | \(O(n)\) | 不稳定 |
归并排序 | \(O(nlogn)\) | \(O(n)\) | 稳定 |
基数排序 | \(O(n)\) | \(O(n)\) | 稳定 |
插入排序 | \(O(n^2)\) | \(O(n)\) | 稳定 |
冒泡排序 | \(O(n^2)\) | \(O(1)\) | 稳定 |
不同的编程思想:
面向过程:是一种以过程为中心的编程思想。“面向过程”也可称之为“面向记录”编程思想,他们不支持丰富的“面向对象”特性(比如继承、多态),并且它们不允许混合持久化状态和域逻辑。
面向过程的编程语言有:C, Fortan, Pascal,汇编语言
面向对象:是一种以事物为中心的编程思想。
比如以公共汽车而言。“面向过程”就是汽车启动是一个事件,汽车到站是另一个事件。在编程序的时候我们关心的是某一个事件。而不是汽车本身。我们分别对启动和到站编写程序。类似的还有修理等等。
面向对象的编程语言有:C++, Java, Python
计算机方面的奖项有:图灵奖,CCF 王选奖
各种学会、比赛的简称及其对应全称:
图片格式:gif, jpeg, png
视频格式:mp4, avi, wmv, rmvb, mkv 等等
音频格式:mp3, ape
卡特兰数:
简单介绍:
第\(n\)个卡特兰数 \(h(n)=h(0)\times h(n-1)+h(1)\times h(n-2)+\cdots+h(n-1)\times h(0)\)
它的通项公式为 \(h(n)=C^n_{2n}-C^{n+1}_{2n}=\frac{C^n_{2n}}{n+1}\)(证明)
应用:
有\(n\)个节点的二叉树的形态有\(h(n)\)种
\(n\)个数出栈入栈的顺序有\(h(n)\)
\(n\)对括号的匹配方式有\(h(n)\)种
\(\cdots\)
原文:https://www.cnblogs.com/Sleepy-Piggy/p/9676801.html