START
这次比赛,应该是倒数第二次吧……[总测试不要来啦~]
一开始看到P1,乍一看没懂。转看P2,发现就是组合数。然而题目数据量很大,怎么办?我想到了公式变形,C(n,m)=A(n,m) /m!=n*(n-1)*……*(n-m+1)/m!。可是题目中需要模,然而除法并不满足模的性质。我想了一会,止步不前了。当时以为正解很复杂,于是先打了个暴力组合数了事,期望得分70。再看T3,迷死我了,不理解。
我又转回去看T1。不得不说我的理解能力太弱?思维不够敏捷?居然看了半天才看懂。画了会样例,发现就是简单的递推公式。看到dep<=10^18,想到最近刚学的矩阵乘法,不难构出矩阵。心里觉得很靠谱,就开打了。顺便还用上了前几晚知道的防止爆栈的技巧——传硕小参数。但是,在运行第二个样例的时候还是成功爆栈,只运行到了22层。我将矩阵改成int类型,运行到了46层。难道递归函数中的赋值语句也要备份?貌似只有这种可能。于是又连赋值语句都写成函数,只传int类型的硕小参数。谢天谢地,第二个样例终于不爆栈了,也对了。欣喜若狂的我欣喜地交上去。woc, 第一个测试点0分???我不甘心,以为是CE,加了一堆库,改了一堆变量名(生怕冲突),没有任何作用还是0分。心如死灰,也不知该怎么改了。
时间真是过得飞快。在我的奇慢读题速度+奇慢码速+奇慢调试速+奇多玄学错误的影响之下(也只有这样能稍稍提高一下正确率……对我来说又快又准不太可能……),时间只剩30分钟了。我去看T3,对着原题仍是看不懂。但当时我显然失去了画样例的兴致。大概觉得时间不够,也牵挂着T1,于是决定放弃本题。
再看T1。算了一下极限时间复杂度,发现每组数据会达到一点零几秒。不好,很有可能会卡常!然而……我觉得已经没有什么优化的余地了……
结果出了,我71+70+0=141,仅排名第7。Yhf大佬AK。一堆人A了T2(包括几个新初二的同学),一堆人T3拿了50分(只有我没打……)。梁老师过来循了一圈,还说T3很普通啊,就是常规题……
我看到,T1的第一个点是RE了……我仍旧是百思不得其解……
这样的递归函数,怎么炸的……没有在栈中申请空间,也没有调用结构体,使其备份啊……
话说回来,T1还有一个点果然卡常了。不知100分的大佬怎么过的,如何不RE/TLE,要去请教一下……
我这次比赛的结果并不理想,或许源于几个方面:面对有些棘手的题目,太过轻易放弃了。有时总是将问题想得太复杂,反倒不得其法。另外,对题目意思有疑惑,要试着去画画样例,多理解一下,说不定就行了呢?T3或许不至于如我觉得的那样难理解吧[(毕竟我的语文没差到这个地步吧(大雾)]……
加油~