acgo题库
  • 首页
  • 题库
  • 学习
  • 天梯
  • 备赛

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
  • 竞赛
  • 讨论
  • 团队
  • 商城
登录
注册
题目详情提交记录(0)
  • 欢乐赛#67 T6 题解

    题目大意 @skirmish 有 nnn 根绳子,第 iii 根长度为 aia_iai ,他可以把 nnn 根绳子中的每一根绳子剪成若干段,每段长度都必须是同一个正整数 LLL,剩余部分会被丢弃。 @skirmish 希望得到至少 kkk 段长度为 LLL 的绳段,请你求出满足条件的最大的 LLL。无解则输出0。 解法一 求最大值,又不能直接求,上二分答案! 左边界 l←1l\gets1l←1,右边界 r←max⁡i=1nair\gets\max^{n}_{i=1}a_ir←maxi=1n ai 。 check 函数也就很好写了,求出每一根绳子的段数之和,判断其是否至少为 kkk。 CODE 1 令 m=max⁡i=1naim=\max^{n}_{i=1}a_im=maxi=1n ai ,则时间复杂度为:O(nlog⁡m)\text O(n\log m)O(nlogm)。 用古诗文形容一下此解法? > 若止印三二本,未为简易;若印数十百千本,则极为神速。 但官方的数据貌似是三二本(?)。 解法二 不能直接求,那为什么不来暴力枚举呢? 直接从右边界 max⁡i=1nai\max^{n}_{i=1}a_imaxi=1n ai 向 111 枚举,找到答案就停。 check和上面一样。 CODE 2 令 m=max⁡i=1naim=\max^{n}_{i=1}a_im=maxi=1n ai ,则时间复杂度为:O(nm)\text O(nm)O(nm)。

    userId_undefined
    skirmish
    时空双修者出道萌新快乐小狗秩序白银CSP-J一等奖BUG超度大师
    1阅读
    0回复
    0点赞
暂无数据

提交答案之后,这里将显示提交结果~

首页