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 @   RainPPR  阅读(87)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示