一些做题原则
获取输入,计算,输出.不做多余的事情,清楚格式.
每行输出以换行符结束,包括最后一行.
解决问题用最直接的,不要炫技.(KISS,keep it simple and stupid)
floor(x),取不大于x的最大整数,floor(x+0.5)四舍五入.
常用: floor(sqrt(n)+0.5);
熟悉math.h.
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
最好加个#ifdef LOCAL,编译时加个-D参数定义.
用print语句帮助调试,不用时可注释.
注意输入结束语句.
大数组声明在main外,考虑栈的问题.
记得测试,中间结果可能溢出,约分化简.(特别递归时)
输入使用getchar和scanf.
C++
1. 可使用algorithm头文件
2. 流可加速:ios::sync_with_stdio(false),工程上不推荐,小程序可以.
3. string很慢,sstream更慢,谨慎使用.
4. 使用cin >> s获取字符串遇空格停,可用getline(cin,s).
5. 使用cstdlib里的srand,rand.
6. vector,set,map都很快,基本都是logn,但某些操作会慢.
源自:《算法竞赛入门经典》第二版,刘汝佳。
【本文章出自博客园willaty,转载请注明作者出处,误差欢迎指出~】