看不懂题目,直接输样例
样例简直就是白送的分数!!
每道题目的后面,都有一组“样例输入”和“样例输出”。它们的价值极大,不仅能初步帮你检验程序的对错(特别坑的样例除外),而且,如果你不会做这道题(这种情况蒟蒻们已经司空见惯了),你就可以直接输出样例!
如果有大样例的,那更好,你可以判断一下输出,这样可能会拿分数。
例如美国的USACO,它的题目有一个规则,就是第一组数据必须是样例。那么,只要你输出所有的样例,你就能得到100分(满分1000)!这是相当可观的分数了。
(PS: 现在USACO的样例已经不算分数了。)
从无解出发,赌你“总司令”
如果无解,则输出-1
如果不符合,则输出No
这时,我们这要输出-1或NO,就能拿到10-30分!
这招甚至在S组都管用,比如2022年CSP-ST3,直接全部输出NO,45分到手!
什么都不管,我直接模拟
很显然,要模拟,你就不能只会输入输出了。
所谓模拟,就是用计算机程序来模拟实际的事件。
较繁的模拟就不叫骗分了,我们这里也不讨论这个问题。
模拟主要可以应用在骗高级数据结构题上的分。
暴力出奇迹,DFS开写
图论?动态规划?贪心?数学?
都是浮云!!!!!
DFS是万能的!!
什么题目,只要一眼想不出来,直接DFS写起!
一般来说,DFS可以拿20-40分。运气好一点,剪剪枝,多拿个20分;写一半突然开窍了,改成记忆化,直接AC!
我本地打表,关你什么事
如果一道题我不会做,但我会暴力,而且是只输入n输出一个数的找规律最值问题,我要怎么办?
我先打暴力,然后把数据范围内的数,先写个小测试打印出来,再一口气输入,记录一下答案,不就行了吗?
但是如果n的范围大于500,请慎用。
如果你的所剩时间小于1个小时,请慎用。
根本看不懂,直接猜规律
有些时候,问题的答案可能很有特点:对于大多数情况,答案是一样的。这时,骗分就该出手了。你需要做的,就是发掘出这个答案,然后直接输出。
某些题目会给你很多样例,你就可以观察他们的特点了。有时,数据中的某一个(或几个)数,能通过简单的关系直接算出答案。
只要你找到了规律,在很多情况下你都能得到可观的分数。
直接STL,我才不手写
如果一些题,需要在类似STL数据结构上进行操作,但很麻烦,怎么办?
我直接STL,才不给你手写,整体解!
比如说,一些题让你在排序的时候操作,我们就可以:
输入
sort(a+1,a+n+1);
Copy
规划干什么,贪心点多好
其实是一语双关啦。
贪心骗分
我们前面介绍了那么多骗分算法,那么能不能把他们联合起来呢?当然可以!
最优方法大概如下:
if(是样例)cout<<样例;
else
{
if(n<=数据范围)DFS/大模拟
else
{
if(特殊条件)cout<<猜想
else cout<<-1;
}
}
贪心算法
动态规划算法从大局考虑,我没有大局观,怎么办?那我就鼠目寸光的写!
大部分DP题,贪心解能拿20-40,一些题甚至能拿到70分,有大用。
最后的最后——实战演练
我们来做一下2013普及组试题(请您自行搜索):
第1题,太弱了,不用骗,得100分。
第2题,数据很大,但是可以直接输入一个数,输出它 mod 10000的值。得10分。
第3题,是一道非常基础的DP,但对于不知DP为何物的蒟蒻来说,就使用暴力算法(即DFS)。得20分。
第4题,我们可以寻找一下数据的规律,你会发现,在所有样例中,M值即为答案。所以直接输出M,得10分。
这样下来,一共得140分,比一等分数线还高20分!你的信心一定会得到鼓舞的。这就是骗分的神奇。
最后希望本文对您有帮助!
骗分是可以,但是现在分数线都提高了,顶多拿个二等奖