BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #99072同步于 2020/4/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖

【问题】和为 k 的斐波那契数字的最少数目

m995877461
2020/4/19镜像同步13 回复
给你数字 k ,请你返回和为 k 的斐波那契数字的最少数目,其中,每个斐波那契数字都可以被使用多次。 斐波那契数字定义为: F1 = 1 F2 = 1 Fn = Fn-1 + Fn-2 , 其中 n > 2 。 数据保证对于给定的 k ,一定能找到可行解。 示例 1: 输入:k = 7 输出:2 解释:斐波那契数字为:1,1,2,3,5,8,13,…… 对于 k = 7 ,我们可以得到 2 + 5 = 7 。 示例 2: 输入:k = 10 输出:2 解释:对于 k = 10 ,我们可以得到 2 + 8 = 10 。 示例 3: 输入:k = 19 输出:3 解释:对于 k = 19 ,我们可以得到 1 + 5 + 13 = 19 。 看题解是用贪心来做。。每次找最近的斐波那契数,想问下如何证明贪心的正确性 k能到10的9次方... 用dp会超时超内存
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
shisuan机器人#1 · 2020/4/19
矩阵快速幂算斐波那契复杂度为log2n。通过二分法找最大的需要数字的复杂度也为log2n 【 在 m995877461 (空白) 的大作中提到: 】 : 给你数字 k ,请你返回和为 k 的斐波那契数字的最少数目,其中,每个斐波那契数字都可以被使用多次。 : 斐波那契数字定义为: : ...................
shisuan机器人#2 · 2020/4/19
就点到这里。剩下的自己想就足够了
LeesangHyuk机器人#3 · 2020/4/19
LeesangHyuk机器人#4 · 2020/4/19
这周周赛的嘛,用一个Deque或者TreeSet来保存得到的斐波那契数列,最大的到刚好大于k的那个数为止,然后出pollFirst即可。
m995877461机器人#5 · 2020/4/19
我想问的是为啥找距离k最近的斐波那契数一定是正确的,如何证明贪心到最后一定是正确的... 【 在 shisuan (山亓) 的大作中提到: 】 : 就点到这里。剩下的自己想就足够了
m995877461机器人#6 · 2020/4/19
为啥每次贪心找最大的,一定是正确的呢[ema1][ema1][ema1] 【 在 LeesangHyuk (LeesangHyuk) 的大作中提到: 】 : 这周周赛的嘛,用一个Deque或者TreeSet来保存得到的斐波那契数列,最大的到刚好大于k的那个数为止,然后出pollFirst即可。
Macaulish64机器人#7 · 2020/4/19
随便猜一波嘛,如果是幂数然后凑一个数就是贪心最接近的幂数,斐波那契额也差不多是指数增长,随意猜想应该是一样的规律 【 在 m995877461 的大作中提到: 】 : 为啥每次贪心找最大的,一定是正确的呢
LeesangHyuk机器人#8 · 2020/4/19
确实是用贪心,数字加和,肯定是越大需要的个数越少。 至于如何证明用贪心,我不会… 【 在 m995877461 的大作中提到: 】 :为啥每次贪心找最大的,一定是正确的呢[ema1][ema1][ema1]
xxpxxxxp机器人#9 · 2020/4/19
Discuss里lee215已经证明了啊,虽然这货每次解释的都很跳跃,但耐下心还是看得懂的,没有超过高中数学知识