打铁*2

在大连和杭州一周的打铁(旅游)之后,还没有好好进行的总结的。

毕竟没有补题,不能说自己会了。ACM的原则是,AC了才是会了,对于我这种弱菜来说,怎么样也不希望连续三场铁吧。也不给自己青岛立FLAG了。在这儿,写篇补题也好,写篇心情也好,把这周两次比赛的过程总结总结。



大连其实玩得蛮开心的,因为乱立FLAG被诅咒了。。。热身赛就爆零就注定了是一场不平凡的比赛吧。记得A题是个dp,自己不会。B题是个暴力,乱搞了一个姿势,过了几个样例,被队友否定了。然后,就没有然后了,全场划水最后爆零。晚上补了那个暴力题,然后就去看海了……

然后是不能忘却的正赛之痛!先吐槽吐槽比赛方,题意不说清楚也就算了,发的Clarification都是有问题的(主要是自己的锅太重背不动)。首先看到的是I题的暴力几何,因为边相同,然后样例输入的时候,角度是一样的,自己就YY成了正多边形(其实也想到了,如果是7边形,9边形,这种360除不尽的情况怎么办)。场上压力太大了导致自己乱做题,然后WA了两发。开题一旦开不好,心情就不太好。毕竟是铁铜队伍,要看手速的哎。题意是:每条边都相同,所以输入了n个角度,然后用0.5*absin(angle)的三角形公式就搞了。然后是J题,整个读题就是蒙逼的,知道要去找小写字母a,然后不知道怎么去算,手算了几个样例,自己构造了才知道是要去变成16进制,去找0x61就好了。再就是全场都会的那个数学博弈论H题。我其实开场就猜到了正确结论:偶数一个答案,奇数一个答案。不然别的队怎么三分钟过的?!但是分析题意,k又没说是什么,然后算着怎么样都不对。为了避免WA一发,我们就放着这个题,知道看到了两个Clarification,最终解释了k是黑色球的个数……在骂完之后,86分钟过了H,手握3题……基本在榜尾了

在这时候,其实我看完了A题,队友在搞D题(GCD那个题),还有一个队友在和我商量F题。然后我们决定为了铜牌,同时开两个题:D和F。队友在写D的时候,F的思路基本上出来了:构造出尽可能多的不重复的没有1的数,打了30以内的表,发现没有什么问题,然后O(sqrt(n))的复杂度去乘起来,然后TLE!没有办法,不知道是思路错了还是怎么样!

先贴个F的题解在这:因为题目时限卡得很死,我们必须先处理好阶乘预处理和逆元预处理,这样对于输入的每个n,最终输出答案的复杂度都是O(1)的

大连F题题解

然后就开始了弱菜乱搞模式,F题已经基本上弃疗的情况下,看到了场上还有A和B的题,于是我自己果断了开了B题:因为数字就0到9总共10个值,可以用状态压缩成1个整数,那么多人过了,暴力跑一发?!(结果告诉我,就是这样可以过。。。因为从前往后找是TLE的,所以换种姿势,从后往前找就可以过!!这什么套路)

A题呢,是个很简单的dfs染色问题,自己太紧张,没有预处理好x和y好人坏人的情况,导致思路是正确的情况下,乱搞了,贴个题解

大连A题题解 

就这样,同时开了4个题。其实静下心来,一个一个好好做,是有希望过1到2个的。然而这样做把心态打爆炸了,不知道难度,没法去好好写代码了。封榜后,看出来了D题的GCD规律,过了这个,然后4题滚粗,必须铁呀。

大连实在太可怕……6题手速快才有铜牌……



杭州西湖名不虚传(什么风景都没有好嘛,只能怪天气?)然而听到了打铁关这个地方,就躲不开打铁的命运吧

热身赛A题大家过题的理论:如果不是排序乱搞一发的话,我是不会的(好像所有人都是这样想)直接说正赛吧,其实状态和配合还不错,赛场上过了3个题,第4个题铜牌题给了我们两个小时去暴力去脑洞,然后没写出来,还是自己的问题吧

先看到的是一个暴力的数据结构题,维护好值就好(开场才几分钟就有人过了的所谓水题)。然后我们看到了贪心可过的E题,数学题。给一个长度为n,最小为5最大为20的数,往其中按顺序添加+-*/这4个符号,问怎么弄答案最大?一开始想到的很简单(数学题,简单的情况往往会有特例的,需要wa才知道):abcd-e*f/g这种构造方法会是最大的。因为乘除这个数尽可能位数小,那么剩下的这个数会很大。第一个wa:abcd的加号怎么填?当然要分类啊!a+bcd,或者abc+d啊!这个其实不应该。改了这个,还是wa了一发:举例111991。计算一下:1+11-9*9/1=12-81=-69。但是最好的答案是:1+1-1*9/91=2-0=2。这个特例是因为什么而发生的呢?最后的除数为2。我们讨论完这个之后,为了避免再wa一发,把除数为3位数的情况也写上去了

有这个题的时候,虽然wa了两发,但是排名还不错,至少在铜牌圈子。细心搞A,在队友的特判和好的HACK样例中,1A了(注意好合并之后,要每次去分那个值;还有和必须是k的倍数的特判)

接着是一个被众人吐槽卡精度的题。我们吸取了大连的经验,在wa了之后,没有去乱提交题目,而是继续算我们的样例,这时候电脑空着,很多队伍过了B题(真的有这么多巨巨都会强连通的吗,太可怕)没办法,没题写,我乱写了一发网络流,去尝试了一下建图,发现这种思路不对,跑不出答案;在这期间,我们看到了Clarification:速度可以是实数!我们一开始当成整数做的,当然答案会不对,注意了eps,按照自己思路,从后往前枚举,维护速度的最小值,然后提交A了

这个时候,3题的队伍挺多的了,我们在100名左右,时间还有2个小时:瞬间心里又有一个FLAG了:再过一个题,就是铜牌了……就可以回校交差了,事实证明,比赛场上不要多想,好好做题!

K题是一个很考研思(乱)维(搞)的题:
猜想一发大数据全都是NO!但是,怎么样来定义大数据!

题解如下:2016杭州K题



大连和杭州总结完了,青岛不给自己立FLAG:滚粗之战

给自己和队友提几个要求:

A:不乱提交题目(除了最后1个小时)

B:当成CF上分战打,觉得自己会的不用跟队友去讨论,自己乱搞先写了再说,要用1A的自信来做题,不能怂

C:有了签到题1A之后,心态要稳。任何现场赛,不需要算法的题都能过的话,必须铜牌了。没有1A也没关系,不要跟大连一样一次性开4个题,3个人同时做2个题是很好的节奏,要知道1个小时1个题,全场也有5个题了

D:好好看题,好好出数据,好好做题

E:数据,要出自己能计算和检验的小数据,要出边界数据,要出最大的数据(即使算不出来也能看出自己的程序会不会崩溃啊,会不会超时啊,会不会输出奇怪的答案等)



滚滚长江东逝水……

你可能感兴趣的:(打铁*2)