20151024模拟赛总结

nodgd大神竟然又抽时间出了一套题,还写了这么多标程。。

这次发挥有点小失误。但没有很严重的问题。

第一题一开始被他那个“二元组函数f(u,p)”给迷糊了。。搞了差不多十分钟才发现这个就是结果为非负数的取模。。发现这个问题之后我感觉自己傻爆了,然后又加紧想了几分钟才想到正解。前段时间专门搜过一个公式a^b%p=a^(b%phi(p)+phi(p))%p,对这个公式印象比较深刻,就没管什么fermat小定理直接上这个公式了。然后为了防止莫名其妙的错误全部开的long long。但最后T了两个点。。本地测那两个点都是700ms左右,然后改成int就是300ms,然后看到标程的一个常数优化,加上就快得飞起了。。其实这个常数优化我考试时一开始就想到了的,但我觉得按他的生成方式应该很平均,这个优化作用不大,结果就没加,哪知道效果这么好。。

所以说以后不管想到什么优化只要保证正确并且不会加大代码复杂度,干脆统统往上加!不过至于long long和int这个问题,我觉得数论题或者答案可能比较大的,最好还是统一long long,毕竟CQOI2015就是这个问题丢了100分。宁可舍一点常数,也要尽量万无一失。

第二题开始也把我卡了一下。本来一开始就想到了正解,但是我觉得Nodgd的题不会这么水,一定有些新东西在里面。。然后我就想到每次找中位数进行分治,感觉很科学然后就想了一会,结果发现不对。然后就研究最开始的想法了,发现真的没什么问题,然后就开始写了,实现得也比较顺利,只不过复杂度比标程多个logn,问题不大。

第三题一开始也被题目迷惑住了。。nodgd大神的语言总是太数学化,我盯着那个式子看了半天,才发现只有结构一样的树才满足那个式子。。然后直接就想到题解给的算法三和算法四了,当时没仔细分析,大致觉得复杂度应该是N的一个很高的次幂,可能是四次或者五次,再看了下数据范围,有点蛋疼。最后就写的阶乘级的暴力交上去骗分了。。结果题解说这个复杂度是N平方的,并且实际可以得70分左右。然后我就无力吐槽了。。

以后写暴力的话,有多项式复杂度的最好还是写多项式复杂度的,谁知道实际效果怎么样呢。。

比较无语的就是答案是NO的那五分没骗到,看了半天,原来是N=10w输出NO打成N=100w了。。


你可能感兴趣的:(20151024模拟赛总结)