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长度翻倍浪费时间。
所有评论(0)