1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol AI分析

解题思路

由于 (ai≤12)(a_i \le 12)(ai​≤12),可以把“求所有子数组 gcdgcdgcd 的总和”用经典做法改写为“逐点累加以该点为结尾的所有子数组 gcdgcdgcd 之和”。

对固定序列,令 mp 表示“以当前位置结尾的子数组”的 gcd 统计: mp[g] = 以当前位置结尾且 gcd 为 g 的子数组个数。 当在末尾追加一个数 (x)(x)(x) 时,新的统计为:

  • 把旧的每个 gcdgcdgcd 值 (g) 变成 (gcd⁡(g,x))(\gcd(g, x))(gcd(g,x)),计数累加

P3400.第3题-打乱数组排列

    1000ms Tried: 93 Accepted: 21 Difficulty: 6 所属公司 : 字节
    算法与标签>动态规划

题目内容

Tk 有一个长度为 nnn 的数组 {a1,a2,...,ana_1,a_2,...,a_na1​,a2​,...,an​} 。定义函数 g(i,j) 表示数组从下标 iii 到 jjj 的元素的最大公约数,即 g(i,j)=gcd(ai,ai+1,...,aj)g(i,j)=gcd(a_i,a_{i+1},...,a_j)g(i,j)=gcd(ai​,ai+1​,...,aj​) 。特别低,若 i=ji=ji=j,则 g(i,j)=aig(i,j)=a_ig(i,j)=ai​ 。

Tk 希望将数组重新打乱排列,使得所有 非空子数组的 g(i,j)g(i,j)g(i,j) 之和尽可能大:

S=∑i=1n∑j=1ng(i,j)S=\sum^n_{i=1}\sum^n_{j=1}g(i,j)S=∑i=1n​∑j=1n​g(i,j)

你需要输出一种重新排列后的数组,该排列能使 SSS 达到最大值。

最大公约数,指多个整数共有约数中最大的一个。例如,121212 和 303030 的公约数有 1,2,3,61,2,3,61,2,3,6 ,其中最大的约数是 666 ,因此 gcd(12,30)=6gcd(12,30)=6gcd(12,30)=6 。

非空子数组 为从原数组中,连续的选择一段元素(可以全选、不可以不选)得到的新数组。

输入描述

第一行输入一个正整数 n(1≦n≦2×105)n(1≦n≦ 2×10^5)n(1≦n≦2×105) ,代表数组的长度。

第二行输入 nnn 个正整数 a1,a2,...,an(1≦ai≦12)a_1,a_2,...,a_n(1≦a_i≦12)a1​,a2​,...,an​(1≦ai​≦12) ,代表数组的元素。

输出描述

输出一个长度为 nnn 的数组,代表重新排列后的数组。

如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。

样例1

输入

3
2 1 4

输出

2 4 1

说明

在这个样例中,其中一种最优的重新排列后的数组为 {2,4,12,4,12,4,1} ,此时有:

  • g(1,1)=a1=2g(1,1)=a_1=2g(1,1)=a1​=2;

  • g(1,2)=gcd(a1,a2)=2g(1,2)=gcd(a_1,a_2)=2g(1,2)=gcd(a1​,a2​)=2;

  • g(1,3)=gcd(a1,a2,a3)=1g(1,3)=gcd(a_1,a_2,a_3)=1g(1,3)=gcd(a1​,a2​,a3​)=1;

  • g(2,2)=a2=4g(2,2)=a_2 = 4g(2,2)=a2​=4;

  • g(2,3)=gcd(a2,a3)=1g(2,3)=gcd(a_2,a_3)=1g(2,3)=gcd(a2​,a3​)=1;

  • g(3,3)=a3=1g(3,3)= a_3 = 1g(3,3)=a3​=1。

总和 S=2+2+1+4+1+1=11S=2+2+1+4+1+1=11S=2+2+1+4+1+1=11 。可以证明这是最大能达到的值。

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 3, 285ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?