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

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情题解(0)讨论(0)提交记录(0)
  • 官方题解|算术排列

    分析题目不难发现,大的数字能变小,小的数字不能变大,容易想到一个贪心的思路: 令当前数字为 xxx: 1. 若 x>nx > nx>n,将 xxx 整除 222。 2. 若已经有数字 y(1≤y≤n,y=x)y(1 \le y \le n, y = x)y(1≤y≤n,y=x),将 xxx 整除 2。 重复以上操作直至 xxx 变为 000 或者找到一个没有得到的排列中的数字为止。 使用一个数组 ppp 存储 111 到 nnn 一共 nnn 个数字是否出现过。 若操作完整个数组 ppp 后,以上条件满足则输出 YES\tt{YES}YES 否则输出 NO\tt{NO}NO。 AC代码 复杂度分析 对于数组中的每个数字,将其做处理的时间复杂度为 log⁡ai\log{a_i}logai ,处理完整个数组时间复杂度为 O(nlog⁡aiO(n\log{a_i}O(nlogai )。

    userId_undefined

    AC君

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