基本类型
| 类型 | 约范围 | 说明 |
|---|---|---|
int |
$\pm 2\times 10^9$ | 默认整数 |
long long |
$\pm 9\times 10^{18}$ | 乘法、前缀和常用 |
unsigned |
$0 \sim 4\times 10^9$ | 仅非负时可用 |
double |
约 15 位有效数字 | 几何、实数题 |
char |
单字符 | 也可当小整数 |
bool |
true/false |
变量与常量
int n = 10;
const int MAXN = 1e5 + 10;
long long ans = 0;
算术运算
int a = 7, b = 3;
a / b; // 整除得 2
a % b; // 余数 1
取模:(a + b) % MOD 建议写成 (a % MOD + b % MOD) % MOD,防溢出。
自增与复合赋值
++i、i++(循环中通常无差别);+=、-=、*=。
类型转换
double x = 1.0 * a / b; // 实数除法
int k = (int)3.14; // 截断
比较
== != < > <= >=,结果是 bool。
位运算(常用)
| 运算 | 含义 |
|---|---|
x & 1 |
奇偶 |
x >> 1 |
除以 2 |
x << k |
乘 $2^k$ |
x & (-x) |
取最低位 1(lowbit) |
x & (x-1) |
去掉最低位 1 |
状压 DP、子集枚举会大量用到。