你有一个序列,一开始只有一个元素1, 一次操作你可以选择一种进行: 1.将序列末尾的元素+1 2.设序列末尾的数为x,添加一个值为x的元素到序列的末尾,即复制。
给定n,问最少用多少次操作,能使得序列的总和>=n。
数据范围:n<=1e9
假 设 存 在 操 作 序 列 p , 其 中 操 作 1 进 行 a 次 , 操 作 2 进 行 b 次 , 假设存在操作序列p,其中操作1进行a次,操作2进行b次, 假设存在操作序列p,其中操作1进行a次,操作2进行b次,
当 每 种 操 作 的 数 量 a 和 b 固 定 时 , 将 操 作 1 全 部 放 在 最 前 面 , 一 定 是 最 优 的 。 当每种操作的数量a和b固定时,将操作1全部放在最前面,一定是最优的。 当每种操作的数量a和b固定时,将操作1全部放在最前面,一定是最优的。
那 么 我 们 只 需 要 考 虑 一 开 始 进 行 多 少 次 操 作 1 , 后 面 全 是 操 作 2 那么我们只需要考虑一开始进行多少次操作1,后面全是操作2 那么我们只需要考虑一开始进行多少次操作1,后面全是操作2
− − − --- −−−
假 设 操 作 1 进 行 p 次 , 那 么 操 作 2 需 要 进 行 ⌈ n − ( p + 1 ) p + 1 ⌉ = ⌈ n p + 1 ⌉ − 1 次 假设操作1进行p次,那么操作2需要进行\lceil \frac {n-(p+1)}{p+1} \rceil=\lceil \frac {n}{p+1} \rceil-1次 假设操作1进行p次,那么操作2需要进行⌈p+1n−(p+1)⌉=⌈p+1n⌉−1次
那 么 总 操 作 次 数 为 p + ⌈ n p + 1 ⌉ − 1 = [ ( p + 1 ) + ⌈ n p + 1 ⌉ ] − 2 那么总操作次数为p+\lceil \frac {n}{p+1} \rceil-1=[(p+1)+\lceil \frac {n}{p+1} \rceil]-2 那么总操作次数为p+⌈p+1n⌉−1=[(p+1)+⌈p+1n⌉]−2
均 值 不 等 式 : ( p + 1 ) + n p + 1 > = 2 ∗ s q r t ( n ) 均值不等式:(p+1)+\frac {n}{p+1}>=2*sqrt(n) 均值不等式:(p+1)+p+1n>=2∗sqrt(n)
那 么 当 ( p + 1 ) 取 ⌊ s q r t ( n ) ⌋ 时 , [ ( p + 1 ) + ⌈ n p + 1 ⌉ ] − 2 最 小 那么当(p+1)取\lfloor sqrt(n) \rfloor时,[(p+1)+\lceil \frac {n}{p+1} \rceil]-2最小 那么当(p+1)取⌊sqrt(n)⌋时,[(p+1)+⌈p+1n⌉]−2最小