Luogu P3336
因为我也是看了大佬的题解才写的(第一问),自认为自己讲得不可能比他们再好了,但是因为好多第二问的题解都被hack了,所以这里详细讲一下第二问的正确做法。
初中平几课堂开课啦
其实思路很简单,利用贪心的思想,能往上走就往上走,能走多高就走多高,来看这个图:
点
容易得出:
第二问答案就是所有
maxn=max(maxn,(x1-x0+y0+y1)>>1);
但是,需要注意的是,如果在
18 3
2 2
4 2
12 6
ans:
1 6
画出来唯一解法是这样的:
但如果我们按上面的方法做,第二问的答案会是8
,为什么呢?
如果我们仍按以上方法算,第二问会被认为这样的:
但显然这是错的,因为不满足题目所要求的函数极小值为
分析产生这种情况的原因:在计算第二问的时候,没有考虑到前一个点不能往上走的情况。
那么何时不能往上走呢?
也很简单,因为我们之前设
那么如果它不能上升,我们就让它下降到
if(!f[i-1][1])x0=x0+y0,y0=0;
这样第二问就结束了。第二问本身不难,但问题出在没有把情况像第一问一样考虑全,导致一些想当然的错误做法,因此告诫自己:
一定要在考虑问题时思考全面,实在不行把所有可能性罗列出来!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类