可能算是一种骗分技巧吧,利用了测试点会显示信息的特性。
就拿我刚骗过的 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?我不敢发工单,怕被禁言,所以发灌水了。
怎么说呢,就是还是有点害怕,要是已经有人反馈过了我就删了。