0813集训模拟

0813分治&二分&倍增&快速幂

复盘

经过昨晚的一点点睡眠,今天的状态稍微好了一点
今天不知道会考些什么,于是就又de了de昨天的题
考试开始,由于前几天问题基本总结出来了,大概的固定策略已经确定,所以今天已经是轻车熟路了
先通读全文,标记出关键点,确定没什么特殊点之后再从T1开始做题。通读完全文之后,大概确定了今天的题目编排大概就和标题一样
首先是T1,这道题一看就是一道需要一点简单推导的分治,实现采用递归的方式,最开始我以为变换形态只有两种,两种轴对称分别对应0和1,以奇偶为关键字,但是在调试过程中发现没有这么简单,其实应该有四种形态,并且每种形态在转移时结果矩阵也分别有对应规律,所以在重写以及调试上花的时间较长,但是期望得分100(埋下伏笔),时间1.5h
然后转战T2,思索良久没想出来,直接去T3,T3在研究过程中发现,可以通过DFS寻找最终节点,从而可以枚举出到达终点的每一种路径,分别在这个路径上算出最小的i次方即可,但是有一个问题,自环怎么解决呢,显然,对于自环,不论怎样都是可以直接跑过去的,多余的步数直接在自环上消耗掉,那么环怎么解决呢,可以发现,如果i+x模一个数不为0,那么i+kx模这个数也肯定不为0,所以对于每个环,我们需要对环进行标记,若环跑一边不可以的话就直接退环,否则即为合法,最后别忘了判断(n==1)!,最后写完之后大概分析了一下,基本就是O(能过),期望得分100(埋下伏笔),时间2h
接下来去看T4,乍一看去没什么思路,但是看到只有一列这个点的时候我就来劲了,只有一列的话想必打表很容易吧,我就开始手玩只有一列的情况,很神奇地发现这居然是斐波那契数列,于是我就直接写了个斐波那契,期望得分20分,时间2.25h
回头再看T2,时间已经不多了,于是我就空了这道,写好文件早早收尾了

赛后

期望成绩:100+0+100+20=220
实际得分:30+0+0+20=50
……
这回看到成绩是真的惊呆了,这和我开始计算的不一样啊
于是我就开始了艰难的debug之旅
首先,T1,经过我的观察,T1显然是A6个点,T14个点,错因竟然是!我没剪枝!,主要出现在时间复杂度分析失误,没有计算多余的运行步骤,在经过优化后,免去多余部分的计算,时间复杂度才正确,于是这里挂了70分
T3,完全是我题意理解出了问题,题目的意思是每秒有一个固定的移动步数,而我理解成了每秒移动步数一定,导致直接WA,实际是倍增套floyd板子加BFS处理即可解决本题
今天主要的问题是想出思路之后没能正确分析时间复杂度以及做题之前太过着急,没有完全理解题意,这两点是之后需要注意的

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值