一些做题原则

获取输入,计算,输出.不做多余的事情,清楚格式.

每行输出以换行符结束,包括最后一行.

解决问题用最直接的,不要炫技.(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,但某些操作会慢.

源自:《算法竞赛入门经典》第二版,刘汝佳。

posted on 2017-12-11 12:58  willaty  阅读(145)  评论(0编辑  收藏  举报

导航