2018.10.08 NOIP模拟 斐波那契(贪心+hash/map)

传送门
签到题。
显然是可以贪心分组的,也就是尽量跟当前的分成一组。
这时我们需要判断a[l]+a[r],a[l+1]+a[r]...a[r−1]+a[r]a[l]+a[r],a[l+1]+a[r]...a[r-1]+a[r]a[l]+a[r],a[l+1]+a[r]...a[r1]+a[r]是否在fibfibfib数列中出现过 。
由于2e92e92e9范围内兔子数列只有40+个数,因此我们反向思考,枚举fibfibfib数列,判断当前组内是否存在fib[i]−a[r]fib[i]-a[r]fib[i]a[r]就行了。
这个可以用hashhashhashO(1)O(1)O(1)完成,笔者为了偷懒选择了mapmapmap
代码

转载于:https://www.cnblogs.com/ldxcaicai/p/10084913.html

你可能感兴趣的:(2018.10.08 NOIP模拟 斐波那契(贪心+hash/map))