2020.10.08【普及组】模拟赛C组总结

本文分享了四道算法竞赛题目及其解题思路,涉及蚂蚁行走优化、乘积最大化的数值选择、01串构造的多种方法以及取物游戏的策略。针对T3题目,提到了动态规划、矩阵乘法和模数优化的玄学剪枝,强调了在处理大数模运算时的效率提升技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

T1 蚂蚁(20)

题目大意:有一根杆子,上面有一些蚂蚁,蚂蚁到达杆子边缘就会掉下去。求最少全部掉下去的时间和最多时间。
这题不知道怎么错了,和正解一模一样,重新打就对了。思路:因为蚂蚁相撞绝对不是最优的,所以只需要考虑同时往一边走或两边走的时间就行了。

T2 max(0)

题目大意:把一个数拆分成几个数的和,使这几个数乘积最大。
这题和正解差了一点点。思路:为了乘积最大化,必须差最小。所以从小到大,从2开始递增枚举,直到多出来再从后往前加。

T3 围攻(100)

题目大意:让你构造一个长度为 n n n的01串,求没有两个1相邻的串的方案数。
这题有三种做法:

  1. dp,因为dp可以优化成倍增形式,所以不会超时。
  2. 矩阵乘法。这题简单的打表就能判断出这是个斐波那契数列,矩阵乘法就可以优化时间复杂度。
  3. 玄学剪枝优化。我们发现,虽然 n < = 1 0 18 n \small<=10^{18} n<=1018,但是它有一个模数100000007。于是,根据模数,我们可以考虑找循环节。接着,找到循环节后,因为循环节太大,我们必须要用 r e g i s t e r register register来优化循环部分,而参与计算的所有变量都要用 r e g i s t e r register register,否则必然超时。(本人测过, l o n g l o n g 1.6 s longlong1.6s longlong1.6s r e g i s t e r i n t 1.1 s register int1.1s registerint1.1s
T4 取物游戏(0)

题目大意:有一个游戏,里面有初始分数和最终分数,让你在满足初始分数最大情况下输出最终分数,有相同的初始分数则结束游戏。
这题考试打了个暴力,结果没分……
正解还待消化……

完成情况
  • T1
  • T2
  • T3
  • T4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值