时间超限问题处理(c++)


c++中 如果时间超上限

做题上:

考虑关于二进制的方法 比如说

find your present (2)

这道题 可以用异或运算 来发现不重复数

对于动态规划 状态压缩发面 方面应用更多

比如说poj 1185 炮兵布阵

其中地图用二进制表示 十进制储存 运算起来十分方便

输入输出:

c++ 的 cin(istream) 就不如scanf() 时间上速度

同样类比一下cout 不如printf 速度

 注意事项:

1 。用<<运算符申请空间或者表明大小时  必须加括号 这样申请

int a[1<<16];//error
int a[(1<<16)];//true;

  在oj上会超时(实测)

2.看了个大佬关于vector的详解 链接 

重点结论就是:

当动态数组内的元素比动态数组长度多一时,动态数组长度翻倍!

也就是说:if(v.size()-1==v.capacity()) v.resize(v.capacity()*2);

而长度翻倍是很花时间的。所以说做题的时候,记得事先把vector的长度拉得足够长,以免运行的时候,vector长度翻倍浪费时间。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM