比赛链接:http://www.codeforces.com/contest/68
第一次做cf,规则很纠结,又是作为今年邀请赛选拔赛的比赛,纠结之下更是纠结,
开始第一题读题不深入,直接跳第二题,又觉得第二题很难,于是到回去第一题,发现可以暴力写,于是写了,提交结果pretest passed,代码放那里,希望有人可以cha我,等一个多小时后没人cha,我便锁代码了;
然后是看其他题,发现题意十分难读懂;赛后Re Judge,A题AC,rating是1406,第一次有rating了,可是第二题,linwei和我说就是一个二分,我。。。我发现linwei真的很强,我发现很多时候思想是很重要的,先有思想再有思路,再有代码;linwei过了前两题,他说他rating是1700+,我纳闷着分数是怎么算出来的,经过这一场比赛,我更加坚定了我坚持做cf的信念;
【A题】
题意:
给定四个数p1,p2,p3,p4其中pi有24种全排列,要求一个区间[x,y]中满足性质的数的个数,性质是: i连续地模pi,最后结果仍然是i,要求24个全排列中至少有7个,能使i满足此条件;
测试数据:
2 7 1 8 2 8
20 30 40 50 0 100
31 41 59 26 17 43
=》0 20 9
我比赛时提交的代码(先求出全排列,然后是对每一个数进行枚举判定):
之后队友提供了神牛的代码,发现很神,没有很强大的数学知识为后盾,没有很大的题量作基础,敢写这样的代码吗?怪不得他们可以再2分钟内ac;
应该是有这样的性质,一个数x模4个数,结果与模哪个数的顺序无关,如果模4个数要是结果仍然是本身的话,x必须小于这4个数,推广之,一个数x%y,结果仍是x则x必小于y,因为%y的结果是[0,y-1],所以有这个结论,如此简单的结论比赛时居然没想到;
神码1:
神码2:
之后想想,既然上面的结论的正确的话,代码就可以优化在O(1)的时间内求出结果,如下:
【B题】
按linwei说的二分答案,写了下,就1Y,绝对悲剧!