您的位置:首页 > 其它

ACM注意事项及一些小技巧

2009-08-15 10:34 197 查看
做题的一些心得,想到几点写几点,以后又想到了再补:

1.scanf(),printf()和cin,cout不要混用,输入数据量比较大的话会导致缓存区冲突。

2.对于大数组放到全局变量里,局部变量内存使用量不能超过64k;

3.对于多组数据,每次算都要数据初始化;

4.sort(first,last),last是past-the-end,就是要排序的元素的最后一个的后一个;

5.对于需要不停插入数据,并保持有序的可以用STL的set容器,它是用平衡二叉树实现的,免去了自己再去写一个的麻烦,用起来真是轻松加愉快。

6.迭代器可以自加自减,v.end()不能;

7.对于输入量大的不要用cin,cin速度太慢,对此我有过惨痛的教训,一道题TLE一下午,最后竟然方向问题出在输入上,狂郁闷..

8.优先队列是个好东西,可以当堆用,就不要自己写堆了。

9.比赛的时候水题要切的又快又准,有两个好处:1.稳定心态 2.有时候题目比较难就看水题刷的谁快,今年上海一题刷的快的就有铜了

10.切忌卡题,在1个小时卡下来一点没进展的情况下,要果断换题。

11.坚持到最后一刻,在最后一个小时出题的可能性还是很大的。

12.对于有重边的情况下,按边存图:

struct ss

{

int p; //点

int dis; //权值

}

vector<ss> g[MAXN];

...

cin>>x>>y>>dis; //输入边

ss temp;

temp.p=y;

temp.dis=dis;

g[x].push_back(temp); //存边

13.模板尽可能带全,挑精简的,不要重叠
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: