[NOIP 2013提高组]转圈游戏 题解

这篇博客介绍了NOIP 2013提高组的一道算法题,虽然难度不高但数据范围较大。博主通过解析题意,指出可以利用快速幂技巧解决,避免暴力求解导致的TLE。详细解释了如何将问题转化为快速幂运算,并给出了时间复杂度为O(logN)的解决方案。
摘要由CSDN通过智能技术生成

这题在洛谷上是道黄题,即【普及/提高-】
所以虽然是提高组的,但是其实挺简单的

我们来看下题面:

[NOIP 2013]转圈游戏

刚看到题面作为一个蒟蒻感觉它都不配做黄题,但是直到我看清楚了后发现它的数据范围及其毒瘤,所以我就陷入了沉思。。。

然后我就突然想到了老师教的快速幂,再看时发现这题是如此简单

这题其实挺裸的,只要稍微推导下就能把答案的公式写出来。
首先,我们可以很明显的想到,这个题目我们只需要维护第 x x x个小朋友的位置就行了,于是一个暴力算法便由此而生,当然,喜提TLE

然后我们就发现其实刚才这个方法就可以直接转换成乘法,那无论是哪个小朋友都肯定会顺时针旋转 ( m ∗ 1 0 k ) (m*10^k) (m10k) 步,但是到这里还不够,因为 ( m ∗ 1 0 k ) (m*10^k) (m10k) 非常有可能超过n,所以别忘了模上 n n n ,要不然就转飞了。
最后我们只要再加上x就行了
所以
a n s = ( x + m

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值