骗分导论

1 篇文章 0 订阅
1 篇文章 0 订阅

1 骗分是什么?

总会有一天,蒟蒻与大佬同台竞技。大佬当然可以专心写程序AC,但是蒟蒻却不会那个算法。假如你是李华蒟蒻,请你帮忙想一个办法,让你可以得分。

答案:骗分

骗分是一种竞赛技巧,可以帮你在不会的题上得分。骗分有很多种方法,将在下文详细介绍。

2 基础骗分方法(难度系数1~3颗⭐)

2.1 特判数据⭐

有时,测试点中可能包含数据,特判一下可能可以帮你获得一个测试点的分。

2.2 输出随机数⭐

#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;

int main()
{
	srand((unsigned)time(NULL));
	cout<<rand()%N<<endl;//0~N-1
	return 0;
}

听说有人用这个方法在某一届NOIp骗来了70+分!如果你觉得你人品够好你可以试试。

2.3 输出特殊答案⭐

如果题目中出现形如这个的话:

如果无解,输出-1

你应该暗自庆幸:输出-1应该可以骗来一些分!不过有些题可能利用这个来坑人,LUOGU P2874:如果没有可行路线的话,输出orz,经过作者实测,会爆0。

2.4 大模拟⭐⭐

如果你有一种模拟策略,可是出于复杂度原因,无法通过所有测试点;并且你不会其他方法,可以试试暴力搜索。

2.5 按测试数据中关系到复杂度的东西分治。⭐⭐⭐

例子:LUOGU P3371:n<=10000,开邻接矩阵会MLE,但是邻接表/链式前向星不是特别熟,可以采取以下策略:

  1. n<=500,邻接矩阵+Floyd,即空间n2时间n3
  2. n<=5000,邻接矩阵+Dijkstra,即空间n2时间n2
  3. n<=10000,邻接表+Dijkstra,即空间n+m,时间n2

3 进阶骗分方法(难度系数4~8颗⭐)

3.1 DFS⭐⭐⭐⭐

搜索。

3.2 BFS⭐⭐⭐⭐⭐

搜索。

3.3 概率论⭐⭐⭐⭐⭐⭐

可以结合一些概率知识判断答案可能的分布情况,然后结合输出随机数或模拟等方法给出答案。

3.4 打表⭐⭐⭐⭐⭐⭐

之所以给这个难度,是因为:

  1. 模拟程序不保证正确
  2. 打表数据范围未知
  3. 造表时浪费很多时间

3.5 对拍⭐⭐⭐⭐⭐⭐⭐⭐

如果你有很多种想法,可以都写出来,然后比较数据,取比较靠谱的。

4 阎王骗分方法(难度系数9颗⭐)

4.1 保证正确的骗分方法⭐⭐⭐⭐⭐⭐⭐⭐⭐

最好的、最高效的骗分方法就是从现在开始认真钻研OI,学习算法,写保证正确的程序,从小牛成为神犇。

5 结语

打竞赛时,不仅要想着骗分,更重要的是想正确的实现方法。如果你想不出来,就证明这是你的薄弱环节,今后要努力钻研这个算法,从此不用骗分!

6 《骗分导论》信息

作者:rui_er(CQY)
日期:2019年6月24日
字数:1326字

  • 8
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值