骗分技巧————《OI骗分导论》

0.1 介绍

任何蒟蒻必须经过大量的刷题练习才能成为大牛乃至于神牛

这就是著名的 lzn 定理。然而,我们这些蒟蒻们,没有经过那么多历练,却要和大牛们同场竞技,我们该怎么以弱胜强呢?

答案就是:骗分

骗分是什么呢?骗分就是用不是正解的程序(保证我们能轻松搞定的程序),尽可能多得骗取分数(以便骗取 1=)。

接下来,就让我们走进这本大作《OI骗分导论》。

0.2 部分内容引用及参考

新版骗分导论 BY秋名山码民

骗分导论 BY李博杰

Part.1 从无解出发

1.1 无解情况

在很多题目中都有这句话:若无解,请输出-1

于是我们只要 cout<<-1; 就可。

如:文化之旅(P1024)

仅需输出 -1 就可得 2828 分

1.2 骗样例

每道题目的后面,都有一组“样例输入”和“样例输出”。它们的价值极大,不仅能初步帮你检验程序的对错(特别坑的样例除外),而且,如果你不会做这道题(这种情况蒟蒻们已经司空见惯了),你就可以直接输出样例!

如 USACO,每题输出样例就可得 11 个测试点的分。

Part.2 非完美的算法

2.1 暴力

暴力可以骗一些有规律的但你想不出来的题目。

例子:辗转相除法(P1015)

long long exgcd(long long x,long long y,long long cs){
    if(y==0) return cs;
    else return exgcd(y,x%y,cs+1);
}
int main(){
    long long n,maxcs=0,ma=-1,mb=-1;
    cin>>n;
    for(long long a=1;a<=n;a++){
        for(long long b=1;b<=a;b++){
            long long ccs=exgcd(a,b,0);
            if(ccs>maxcs){
                maxcs=ccs;
                ma=a;
                mb=b;
            }
        }
    }
    cout<<ma<<" "<<mb<<" "<<maxcs;
    return 0;
}

2.2 DFS

这对于你的骗分是至关重要的。比如说,一些动态规划题,可以DFSDFS;数学

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值