1.main函数里必须在结尾写上"return 0;"
这是写在规则里的,但是一般不会让你知道
平时不加return 0;代码会给你优化,但在蓝桥杯中不写return 0;会出现编译错误的
2 一定要开long long(这样能避免超出数据范围而得不到对应的分数了)
step1:把main函数前面的int换成signed
step2:在代码开头,写上#define int long long
这样做完之后代码中的所有int都会被替换成long long
比如说a[i]范围是1e6,那么求和的话1e6*1e6=1e12(超过了Int的范围)
麻烦的方法是直接都改成long long
还有一种方法是用ll替换long long,但是违背你平常的习惯
还有一种方法是直接把所有Int替换成long long
这样你写的是int,但在编译时会全部换成long long
但是这样你运行的话编译器还是会报错的因为这里你写的是int main()
C++规定 main()函数前面必须是32位的整型
可以用signed 在C++中也是int的意思 也是32位的整型
这里用signed可以避免被替换成64位整型的long long
3 关于输入输出的速度问题:
(1) 都用C语言的输入输出方式(麻烦,不建议)
(2)写上三行代码关流
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
同时写上#define endl '\n'
两种方法不要混用,因为在你写上三行代码的同时,虽然提高了cin,cout的速度,但是会导致、
scanf和printf出现Bug,导致输入输出错误
c++中的输入虽然方便但是读取速度很慢,c语言的虽然麻烦,但是读取速度很快
输出也是一样
虽然一般时候不会影响 但是有的时候我们用的都是暴力的代码,意味着我们的代码肯定会超时,我们需要尽可能的节约时间,保证很多数据能够在那时间的边界卡过去
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
用了这三行代码后 cin和cout的速度就会非常快了
如果此时用c++的endl,这行代码速度会依旧很慢
应该用C语言的换行代码
也可以这样,这样编译的时候会把endl替换成’\n’
4 万能头文件:#include<bits/stdc++.h>
5 提交代码时,会让你选择对应的C++标准,选择的规则:提交时的标准要大于等于你本地编译器中C++的标准
如果你的本地编译器是C17那就是17年的标准,向下包含,编译不会错误
但是你选择提交的时候如果选择版本低的 就会出错
提交时可以选择C17的 选择版本高的比较好
或者直接就是C++的话那没事了 看着选