C++编程竞赛常用技巧总结
——by:杨与S8/CODE:549
注意:以下所有语法均建立在头文件有#include<bits/stdc++.h>
的前提下
2023/11/1
1.头文件改用万能头文件,避免出现写完忘记加头文件的尴尬
#include <bits/stdc++.h>
2.使用using
定义缩写可以提升写代码的速度,尤其是需要复用的代码
using ll = long long; //ll是long long的缩写
3.数组需要用10的n次方定义时,用1en
代替,最好再加个3防止数组越界
const int N = 1e4 + 3; //1e4表示10的4次方
4.使用下面三行代码可以加快cin
和cout
的速度
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
5.在有n个元素的数组a中,可以用下面的语法快速获取最大值或者最小值
cout << *max_element(a, a + n) << "\n"; //输出最大值
cout << *min_element(a, a + n) << "\n"; //输出最小值
6.使用下面的语法可以保留x的i位小数
fixed << setprecision(i) << x;
//例如下面这个:输出平均数并保留三位小数
cout << fixed << setprecision(3) << sum * 1.0 / n;
//注意要乘以1.0,否则会被当成整数相除
7.max
与min
函数:取某几个元素中的最大/最小值
//假设a>b>c
cout << max(a, b, c) << "\n"; //输出结果为a
cout << min(a, b, c) << "\n"; //输出结果为c
//下面是实际应用:数组为a[n]
for (int i = 1; i < n; i++) // 更新最大值和最小值
{
mx = max(mx, a[i]);
//将目前的最大值不断与数组中的下一个元素比较,有大取大
mi = min(mi, a[i]);
//同上,有小取小
}// 循环结束后,mx和mi分别存储了最大值和最小值