small tips

1.万能头(竞赛常用,省事),包含所有C和C++的头文件,还有常用的max,min,sort(有sort还用什么冒泡)等函数可供直接调用

1
2
<bits/stdc++.h> 
using namespace std;

2.在main函数外定义变量(全局变量)会被初始化为0,而定在main函数内的局部变量空间小,容易溢出

3.在main函数外用typedef可以给数据类型起名,比如

1
typedef long long ll

定义变量时会少些很多,在学结构体时可省事

4.const double a=3.14; 意思是常变量a不能再被修改

5.在c++代码中cin是输入,cout是输出 cin>>a>>b意思是先读入a,后读入b cout<<a<<b<<endl同理 遇到endl会打印换行

6.devc++的debug(一定要学会),设置断点,添加变量,通过查看每一步变量值的改变来找出错误

7.getchar()与putchar(…),gets()与puts(…)

pta实验里好几道题的解题方法要把回车滤掉,输入某变量后,要按回车,但不要让下面的%c把回车读进去了。ch=getchar()吃掉回车

getchar()可以读入一个字符,putchar(ch)可以输出一个字符ch,gets与puts则是对字符串处理的函数,不遇到回车不结束,最好用下面的读入方式替换gets,因为gets并不安全

1
scanf("%[^\n],str");

另外memset函数可以清空缓冲区(string.h)

8._gcd可以求a,b的最大公约数

在algorithm头文件中(c++)

9.差分与前缀和

这两种算法属于算法的优化,可以减少时间复杂度

详情见这里(滑稽)