acgo题库
  • 首页
  • 题库
  • 题单
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情题解(0)讨论(0)提交记录(0)
  • 正经题解|电子打印机

    题目大意 给出一个字符串sss,并且首尾相连,即n+1−>1n+1 -> 1n+1−>1 , 现在要求将字符串当中的字符aia_iai 集体向后移动mmm位,求解位移后的字符串。 解题思路 我们设定字符串sss的长度为nnn,假若m>nm > nm>n的情况下,实际上每位aia_iai 位移的格子相当于m%nm \% nm%n 格,例: * abcde 右移1格为 eabcd * abcde 右移6格为 eabcd 不难发现,在字符串长度为n=5n = 5n=5的情况下右移1格与右移6格的结果相等,那么我们就可以得等价关系 $ m = m % n$。 进一步换算,假若字符串下标从0开始进行计算,那么转移后第iii位的位置与原来字符串的位置表达式可以写为i=(n−m+i)%mi = (n - m + i) \% mi=(n−m+i)%m 时间复杂度分析 O(n)O(n)O(n) 演示代码

    userId_undefined

    AC君

    管理员
    倔强青铜
    27阅读
    0回复
    0点赞
首页