题解 P7405 [JOI 2021 Final] 雪玉
洛谷。
题意
应该好理解的。
分析
我们的所有雪球在同一时间之间的距离都是相同的,因此一段雪,要么是它左侧的第一个所取,要么右侧第一个所取,要么不被取,并且,我们每一个雪球所占有的雪是连续的一段。
我们令
我们分析两个雪球初始位之间的雪地的分割情况,两点间距离为
- 左侧与右侧并不相接,即
,那么左侧的雪球就可以增加 ,右侧雪球就可以增加 。 - 会有某一段收到两个争夺,那么,我们先找到最大的
,使得 ,先将这一段分割,接着,假如说这一步是向左,那么这一段就是属于右侧的,假如说这一步是向右,那么这一步就属于左侧,因为这一步过后,这一段必然会被某一端所占领。
a[0]=-INF,a[n+1]=INF; int mx=lenth[m]; for(int i=1; i<=n+1; ++i) { int len=a[i]-a[i-1]; if(len>=mx) { ans[i]+=abs(L[m]); ans[i-1]+=abs(R[m]); } else { int T=upper_bound(lenth+1,lenth+m+1,len)-lenth-1; ans[i]+=abs(L[T]),ans[i-1]+=abs(R[T]); if(b[T+1]>0) ans[i-1]+=len-lenth[T]; else ans[i]+=len-lenth[T]; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现