ACM注意事项及一些小技巧

做题的一些心得,想到几点写几点,以后又想到了再补:

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.模板尽可能带全,挑精简的,不要重叠

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值