Day 8.2 NOIP2024 模拟赛 总结
Day 8.2 NOIP 模拟赛总结
T1
T1赛时打表输出发现了等差数列的性质(好像不需要打表也能知道),然后我码完T2过后剩不到2个小时了,于是连T3T4暴力都没码就过来推了,但也没推出来,时间倒是耽误了不少,剩一个小时的时候去开始去码后面的暴力了。
T2
水题一道,做法,性质全给了。只不过比较玄学的是赛时手玩数据自测时间时,发现原来的实现方式对于 tp = 2 ,a或b极大时会T掉,但感觉时间复杂度很明显是对的,就是答案的长度,题面说了答案不超过1e6,所以理论上肯定不T,所以赛时很懵,卡常从6186ms 卡到了 2890多ms,但肯定会T,最后换了一种写法莫名其妙的就不T了,我怀疑我原来判断到达的方式有问题,但这是赛后的猜想,我没有找回之前的代码去调,但应该就是这个问题,换了一种dfs的写法,与先前的while 的写法有所不同,细节上的差别,导致了最终结果的不同。我为此,在考试2个小时之后才开始看T3题面,这也为我本场比赛暴力没有码完埋下了伏笔……
T3
T3必须狠狠的骂自己,由于T1和T2的原因,11:15左右我才着手码暴力,本身时间是绰绰有余的,但,由于我码的Dfs写法非常的日本,导致回溯一值出问题啊啊啊,我当时非得把字符串删去字符写成一个后一位向前一位移,开个数组存一下原值,回溯的时候还回去,但是有可能回去的时候这个数组的值是递归的倒数第二层需要的值,想到这儿之后我又对这个数组以类似的方式处理,反正最后是调崩了,实际上只需标记一下这个位置删掉了即可,我当时为了遍历字符串的那一点小小常数,非得整串的处理,这样实现的常数也不小,关键我也没码出来啊TvT。
T4
套用T3的开头,由于T1T2的缘故,T4也并未仔细思考,码了个暴力就润了。
题解里的做法有很多种,正解一共三个好像,不过一个是什么生成函数整数递推,一个是什么Ntt乱七八遭的,可写的只有第三个。
我们考虑设置一个dp:
时间复杂度是
考虑我们并不需要知道哪些格子被染上色了,于是我们不需要状压dp,考虑设
时间复杂度来到了
由于A颜色B颜色本质相同,通过二进制优化可以让复杂度来到
对于本题而言,最终的复杂度一定是一个与
于是我们期待设计一个仅通过枚举dp数组的两个下标就能实现转移的状态。
被染上色了的设定是很伤的,因为它自带两重循环,所以上面的设定必须舍弃,我们考虑设计
时间复杂度来到了
总结:
1.思路正确,实现却频频出错的时候,换种写法或许能够规避掉许多细节错误,7.26的dp专题赛T3便是如此。bfs就是比dfs先天具有规避递归层数带来的问题的能力,如果你是bfs,那么T3你甚至可以水到50,如果你是dfs,你会有5pts,如果你实现的优秀并且可以处理掉递归层数带来的问题,那么,你会拿到35,为什么不写bfs呢?
2.码dfs前想清楚怎么码,不同的方式往往决定码的难度,决定了码的时间,决定了你是否有更多的时间去磕后面的题。
3.赛时不要害怕写dp,不要有畏难情绪,不要一见dp就return。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探