偶然间发现的奇妙东西
  • 板块灌水区
  • 楼主Manki23333333
  • 当前回复21
  • 已保存回复21
  • 发布时间2023/1/20 18:35
  • 上次更新2023/10/24 03:29:26
查看原帖
偶然间发现的奇妙东西
871004
Manki23333333楼主2023/1/20 18:35

可能算是一种骗分技巧吧,利用了测试点会显示信息的特性。

就拿我刚骗过的 P1541 举例,看代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
    cout << 320;
    return 0;
}

我没用测试点下载!!!

这是因为测试点会显示信息,如果我输出 0 , 第一个测试点是这样的:

Wrong Answer.wrong answer On line 1 column 1, read 0, expected 3.

这说明,第一个数字应该输出 3 ,那改一下,输出 3 ,测试点是这样的:

Wrong Answer.wrong answer Too short on line 1.

这说明第一行还需要一些数字,输出 30 ,测试点是这样:

Wrong Answer.wrong answer On line 1 column 2, read 0, expected 2.

这说明第二个数字是 2 , 输出 32 , 结果:

Wrong Answer.wrong answer Too short on line 1.

说明有第三个数字,输出 320 , 第一个测试点AC了。

可能有人会问:就只能AC一个测试点有什么用?

啊,那么,利用测试点的奇妙特性,我们还可以获取输入测试点。

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin >> n;
    cout << n;
    return 0;
}

这样只能获取输入的第一位,但是...

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin >> n;
    cout << n-n/x*10;//获取第x+1位
    return 0;
}

然后就能switch打表了。

可能算bug?我不敢发工单,怕被禁言,所以发灌水了。

怎么说呢,就是还是有点害怕,要是已经有人反馈过了我就删了。

2023/1/20 18:35
加载中...