五一集训——语言基础
基础
乱七八糟
程序运行:CPU只负责计算 内存存储变量和常量
CPU的位(32/64)每一位为一个bit(最高位为符号位,1表负数,0表非负数)
语言基础
计算机中的整数表示
int:正负2的31次方
自然溢出:无符号溢出后从头起始
long long(long long int) 64位 short 16位 char 8位 bool 1位 long 计算机自常决定位数
unsigned 无符号
浮点数表示
float——32 (10的38次方,6~7位有效数字)
double——64(10的308次方,15~16位有效数字)
long double——>64
结构体struct
定义可存储多类型数据的新变量
C++中的数据运算
+ - * /
指针的运算符:*,&
C++语言的语法和数据类型
C++标准库
www.cplusplus.com
大O记号和其它记号
T(n)=O(n) iff 存在C,N>0,使任意n>N,T(N)<=Cf(N)
时间复杂度和空间复杂度
时间复杂度: O(1),O(logn),O(根号n),O(n),O(nlogn),O(n^2)
计算: 递归:写出过程计算递归复杂度再加上常数
P,NP,NPC,NP-Hard
P:多项式,可以在O(n^k)内被解决
NP:可以在O(n^k)内验证答案
P包含于NP
(验证P=NP图灵奖?
NPC=NP-Complete NPC是NP子集,NP能在O(n^k)内规约为NPC
NP-Hard:不一定属于NP
指针
可以指向变量或数组
(定义下标为负数的数组
*(b+1)=a[1]
特殊的:void *没有类型的指针,可以指向任何类型的数据