一知半解的卡时技巧(没有
一知半解的卡时技巧(没有
无说明,无技巧,无用途(三无
什么是卡时
比如时限 \(1000\text{ms}\),然后你写了一个 DFS 暴力部分分。
然后你明显超时了,此时就可以用卡时。
然而我并没有说卡时是什么?
形象的,算不完就不算了,到时间就输出局部最优解。
比如我在 NOIP2021 的复现中就利用卡时,\(\text{T3}:20\mathit{pts}\to28\mathit{pts}\),获得了总分 \(148\mathit{pts}\) 的好成绩(呜;
适用情况、优缺点
适用:求最优解一类的,求满足条件的贡献之和一类的不大适用。
优点:测评分数可能会增加 \([-10,10]\),因为如果题目卡常就完蛋了。
缺点:常数大,有可能会比纯暴力更烂。
基本形式
以 DFS 为例:(此处 \(0.9\) 表示最大容忍时限,建议比总时限略小
#include <ctime>
void dfs(...) {
if (clock() > 0.9 * CLOCKS_PER_SEC) {
printf("%d\n", ans);
exit(0);
} // 下面是 DFS 部分
}
技巧
- 能不用就不用;
- 不如卡卡常数来的快。
本文来自博客园,作者:RainPPR,转载请注明原文链接:https://www.cnblogs.com/RainPPR/p/kashi-trick.html
如有侵权请联系我(或 2125773894@qq.com)删除。