[转]NOIP考前知识大总结

本文总结了NOIP竞赛中的核心知识点,包括数据类型、基本算法思想、数据结构及排序算法等内容,并对动态规划等重要概念进行了阐述。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[转]NOIP考前知识大总结

NOIP考前知识大总结

作者:于俊超
ID:MiniDragonXG

2006年11月

数据类型
Type                     Range                                                                         Size in bytes

Byte                     0 .. 255                                                                      1
Shortint                 -128 .. 127                                                                   1
Smallint                -32768 .. 32767                                                         2
Word                   0 .. 65535                                                                      2
Integer                     either smallint, longint or int64                                              size 2,4 or 8
Cardinal               either word, longword or qword                                           size 2,4 or 8
Longint                -2147483648 .. 2147483647                                         4
Longword             0..4294967295                                                    4
Int64                 -9223372036854775808 .. 9223372036854775807                    8
QWord                0 .. 18446744073709551615                                     8

Real                                2.9E-39 .. 1.7E38                                                                                6
Single                        1.5E-45 .. 3.4E38                                                                                4
Double                        5.0E-324 .. 1.7E308                                                                        8
Comp                        -9.2E18 ..  9.2E18                                                                        8
Extended                3.4E-4932 .. 1.1E4932                                                                        10

算法思想:
        1.搜索        (Search) 枚举(穷举) / 遍历 / 剪枝 / 产生式系统(估价函数)
                        查找(字典):折半查找(二分法) / 树形查找(二叉排序树) / Hash
        2.归纳        (To 数学方法)  >  递推式  > DP  (ex: 4 Hanoi Tower Problem)
        3.分治        (Divided and Conquer)
        4.贪心        (Greedy)                5.模拟

实现技巧:          循环
递推(顺推/倒推)  > 博弈 / 动态规划
递归(栈/DFS)
滚动数组
幂:
x ^ y = exp(y*ln(x))
x ^ (1/n) = exp(1/n*ln(x))
math单元里的Power
数学方法:       
        1.数论:                质数 / 因数 / 约数个数(种数)/ 最大公约数 / 最小公倍数 / 回文数....
        2.进制转换  注意负进制
        3.高精度运算        (int64...)
        4.排列组合:        全排列
        5.经典递推关系:       
                Fibonacci:                fib(n)=fib(n-1)+fib(n-2)
                                            fib(1)=1  fib(2)=1
                                通项:        设g5=sqrt(5)  则fib(n)=(1/g5)*( ((1+g5)/2)^n-((1-g5)/2)^n )       

                        f(n)=a1*f(n-1)+a2*f(n-2)+....+ak*f(n-k) (ai<>0 & n>k)叫
k阶常系数线性齐次递推关系
可以利用矩阵性质和快速幂在O(logn)内求解
错位排列:                   F(1)=0  F(2)=1
Fn=(x-1) * (Fn-1 +Fn-2)
                                           
                Catalan数:                Catalan(n)=C(n,2*n)/(n+1)
                第二类Stirling数        s(n,k)= { s(n-1,k-1)+k*s(n-1,k) } (n>k>=1)
        6.高斯消元

数据结构(Data Structure):
1.物理结构:
        I:        数组  >  二维平面/字符串(Ansistring)及其操作
        II:        指针  >  链表 (单链表 / 双向链表 / 环状链表)

抽象数据类型(Abstract Data Type)
2.初级ADT:
        I:        集合
        II:        线性结构
                A:        栈(stack)       
                (LIFO)        operation:        push/pop
                        a:        后缀表达式
                        b:        进出站序列问题(Catalan 枚举 > 归纳)
                        c:        栈优化最长不下降(上升)序列
                B:        队列(queue)  >  循环队列       
                (FIFO)        operation:        push/pop
                        a:        广度优先搜索
                        b:        求和广义线性表
                C:        字典 Dictionary
        III:        非线性结构
A:        树Tree        (二叉树Binary Tree)
                        树的遍历:前序/中序/后序  (递归)
                        最优二叉树(哈夫曼树Huffman tree)(贪心)
                        树形DP
                B:        图Graph       
                        a:        图的遍历:       
Depth first Search                 (DFS / 回溯 / 递归)
Breadth first Search                (BFS / 队列 / FloodFill 种子染色法 )
                        b:        最小生成树:(贪心)
                                Prim:        边集密
                                Kruskal: 边集疏(排序 + 并查集)
                        c:        最短路径
                                Dijkstra( 单源 O(n^2) BFS )
                                Floyed( 所有点间 O(n^3) )
                                Bellman-Ford(负权环)
                        d:        拓扑序列
                        e:        关键路径(AOV网)
                        f:        无向图传递闭包
                                有向图强连通分量SCC
                                (Strong Connected Component)
                        g:        路与回路
                                欧拉路(Euler Route)所有边
                                哈密尔顿路(Hamilton Route)所有点
                        h:        割顶和桥
                                        去除之后图变得不连通的顶点和边
3.高级ADT:
        I:        集合型
                A:        并查集(disjoint-set)
                        operation:        Find/Union/Insert
        II:        字典型
                哈希表(Hash)        哈希函数
                        opertaion:        Find/Insert
        III:        树型
                A:        二叉堆(Heap)  >  Treap
                        operation:        Insert/Delete(Pop)/GetMax/GetMin
                B:        Binary Search Tree(BST)
                C:        平衡二叉树......


排序算法:

复杂度        思路        Insert                    Choose                    Exchange
O(n^2)                    直接插入排序        直接选择排序        冒泡排序
                                (Inserting Sort)    (Choosing Sort)   (Bubble Sort)
O(nlogn)                希尔排序            堆排序                    快速排序            归并
                        (Shell Sort)            (Heap Sort)            (Quick Sort)            (Merge Sort)
O(n)                        计数排序            桶排序                    基数排序
                        (Counting Sort)        (Bucket Sort)            (Radix Sort)

Quick Sort:        分治
Merge Sort:        分治
Bucket Sort:        哈希表
Heap Sort:        堆
还有二叉排序树..........

动态规划(Dynamic programming)
=记忆化搜索+用Table记录免去重复计算
        (解决 满足具有最优子结构 且 无后效性)
        1.状态转移方程+边界条件
        2.合适的实现方法(To 实现技巧)
        3.要掌握最经典的动规题目
                a:        最长不下降(上升)序列
                b:        最大子段和  &  最大M子段和
                c:        最长公共子序列(LCS)
                d:        石子合并(链,环)
                e:        背包问题
                                01背包-可重复(DP)
                                01背包-不可重复(DP)
                                部分背包(贪心)

博弈问题:
1.        关键字:必胜态 / 必败态
2.        递推找规律
        3.        归纳

计算几何
        三角形面积          s=|x1y2+x2y3+x3y1-x3y2-x2y1-x1y3|       
        二维仿射变换        反射 / 镜像 / 旋转
        计算二维凸包……这东西我直接听不懂……
网络流 & 匹配(二分图) & 线段树 & 树状数组 & NP完全 ……
∵九成不考 ∴略…… 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值