技巧:
#include <bits/stdc++.h> using namespace std; using ll = long long; //为ll起别名:long long //起别名也可以用 typedef long long=ll; //1.开数组大小不要用define 避免一些错误 const int N = 1e5 + 9; int a[N], prefix[N]; //数组尽量用全局,全局利用堆空间,堆空间大 int main() { //2.取消同步流,为了加速一定要写全 ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); //3.对于前缀和可以写成这样,速度更快: int n; cin >> n; for (int i = 1; i <= n; i++) cin >> a[i]; for (int i = 1; i <= n; i++) prefix[i] = prefix[i - 1] + a[i]; cout << '\n'; //能用\n不要用endl;因为endl包含了\n和强制清除缓存区速度很慢 return 0; }
关于同步流,如果没有取消同步流,cin>>一些数后,就会输出一些数(速度慢),而取消同步流,就会把输出先放在缓冲区,最后再输出出来。
但是如果选择取消同步流,就不要用scanf()和printf()会出一些错误
不推荐的一种写法:
#include <bits/stdc++.h> using namespace std; #define int long long //把int 宏定义成long long //signed=signed int signed main() //但是这样,要把main返回值改成signed,因为int已经不是int 了 { int a = 14; cout << sizeof(a) << '\n'; //会输出8 return 0; }
不推荐这样用,如果要用long long可以直接写:using ll=long long;或typedef long long=ll;
参考:
来自E哥的课程第一节: