注意:本笔记来自上课速记,看不懂也别看了
——————————————————————————————————————
问题1:如何思考?!?!!??!?
不能拿到钱第一时间回去还:WA数据
e.g 100 -200 -200 250 -200 300
多走了1步(15>14)
所以走完所有的步数再回来还钱
问题2:如何判定什么时候回头?!?!?!?!?
贪心:
为什么?求最少步数
最多答案是3n(第一个欠钱非常多) 最少答案1n(直接走到尾) 所以范围是1n~3n
最少路径:走到尾再回头还钱再去终点(最多3n)
答疑:
为什么不用二分?1<=n<=1000000
为什么不能拿到钱第一时间回去还?不能保证第一个欠钱的地方之后没有欠钱的地方
为什么不两种都走一遍?1<=n<=1000000
*/
——————————————————————————————————————
代码鉴赏部分:
CODE1:刁老师版本
CODE2: AC草精简版本
——————————————————————————————
真可谓是:超绝USACO,脑力大风暴!