如果看到这里的各位是想要参加竞赛,那么接下来一点一些小魔法大家可以修炼一下下。
在那遥远的编程王国,藏着一件传说中的秘宝——bits/stdc++.h,这不仅仅是一块普通的头文件石碑,它是C++语言魔法的集大成者,被誉为编程者的“万能钥匙”。
#include
在这薄薄的一行符咒之下,蕴藏着庞大的知识体系:从基本的输入输出流iostream,到神奇的标准模板库STL的全副武装——容器如向量vector、列表list、映射map的魔盒,算法如排序sort、查找find的魔杖,一应俱全;还有那些操控字符串的符文string,以及处理数值与数学运算的古老符咒cmath、cstdlib……所有这些,只需一个简单的包含指令,便如同打开了一扇通往无限可能的大门。
使用了这个头文件后,一般竞赛所需要用到的头文件都可以不用再写了,因为都已经包含在这里面了。
在c++中,cin和cout的速度并没有scanf和printf快,但是cin和cout写起来很简洁,但是有些题目会卡时间,数据量非常大的情况下,用cin很有可能会超时。
所以,我们可以使用关流。
在输入前加这么一句话:
- ios::sync_with_stdio(0);
- cin.tie(0);
- cout.tie(0);
cin和cout在未同步时,可以利用缓冲区更高效地处理数据,减少读写延迟。因此,ios::sync_with_stdio(0)就像是给你的魔法图书馆安装了一个“超速模式”,虽然强大,但需谨慎使用。
我们还可以使用快读来代替cin
- //快读
- inline int read()
- {
- int x=0,f=1;char ch=getchar();
- while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
- while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
- return x*f;
- }
这是一种比关流更快的读入方式,如果使用了快读还是超时,那么就是算法存在问题了。
我们还可以使用\n来代替endl
在程序最前面定义
#define endl '\n'
在写long long的时候 要写这么长一个字符可能在打字上有些许的耗费时间,我们可以直接用ll代替
#define ll long long
这样写起来是不是快多了[狗头]
好啦,今天的一些小魔法就介绍到这里,专栏再见哦~记得点点关注~