Page Top

一知半解的卡时技巧(没有

一知半解的卡时技巧(没有

无说明,无技巧,无用途(三无

什么是卡时

比如时限 \(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 部分
}

技巧

  • 能不用就不用;
  • 不如卡卡常数来的快。
posted @ 2023-11-02 10:44  RainPPR  阅读(82)  评论(0编辑  收藏  举报