一
1.文件流
#include <cstdio>
freopen("apple.in", "r", stdin);
freopen("apple.out", "w", stdout);
// 代码
fclose(stdin);
fclose(stdout);
#include <iostream>
cin >> n; cout << n;
2.关闭同步流
cin/cout
scanf/printf
ios::sync_with_stdio(false);
cin.tie(nullptr);
3.换行,空格
'\n'
代码
1 2 3 4 ;
1 2 3 4;
(1)
cout << a[1];
for (int i = 2; i <= n; i++) {
cout << ' ' << a[i];
}
(2)
for (int i = 1; i <= n; i++) {
if (i > 1) cout << ' ';
cout << a[i];
}
4.空间限制
元素个数 * 单个元素字节数
空间限制128MB = 128 * 1024 * 1024
const int N = 1e9 + 5;
int a[N]; int -> 4字节
e.g. 1 <= n <= 2e5;
const int N = 2e5 + 5;
主函数外的变量数组需要手动初始化
int ans = -1e9;
5.错误
int 转 long long
#define ll long long
6.快读
getchar
inline int read() {
int x = 0, f = 1;
char ch = getchar();
while (!isdigit(ch)) {
if (ch == '-') f = -1;
ch = getchar();
}
while (isdigit(ch)) {
x = x * 10 + (ch - '0');
ch = getchar();
}
return x * f;
}
7.常见模板代码
二分
while (l < r) {
int mid = (l + r) / 2;
if (a[mid] >= x) r = mid;
else l = mid + 1;
}
8.排序
冒泡、选择、插入、计数、sort
pair<int, int> p[N];
sort(p + 1, p + n + 1);
9.前缀和
10.搜索
DFS
BFS
11.最短路
Dijkstra(堆优化,无负权回路)
SPFA判负环
12.线性筛
13.STL
map<int, int> mp;
set<int> set;
queue<int> q;
stack<int> stk;
vector<int> ve[N];