AtCoder Beginner Contest 257 Solution(C~F)

饭宝  金牌会员 | 2022-8-13 01:17:25 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 843|帖子 843|积分 2529

AB 不写了
ABC257C Robot Takahashi

按照 \(W_i\) 排个序,算一下前缀后缀 1 和 0 的个数就行了。答案大概是一个 \(\text{max}(p_i+s_{i+1})\) 的形式。
有一个小细节:排序之后 \(W_i=W_{i+1}\) 时无法在 \(i,i+1\) 之间断开,要特判。我因为这个 WA 了一发。
AC Code
ABC257D Jumping Takahashi 2

二分答案,然后暴力建图 dfs 就行了。\(O(n^2\log V)\)。注意二分的右端点不能太小也不能太大。我思考了一下感觉至少要开到 \(4\times 10^9\),然后无脑开了 \(10^{14}\) 结果一下子爆 long long 了,又 wa 了一发2333
AC Code
ABC257E Addition and Multiplication 2

我们发现如果确定了每个数 \(i\) 要买几个,那么最优方案肯定是从 \(9\) 到 \(1\) 一个一个放下来。
因此考虑用一个长度为 \(9\) 的 vector 来表示每一个数字选了多少个,然后随便 dp 一下就行了。
时间复杂度 \(O(n\times 9^2)\)。感觉看代码更好理解:AC Code
ABC257F Teleporter Setting

考虑新建一个假的点 \(S\),对每个 \((0,v)\) 的边连边 \((S,v)\)。
现在相当于对每个 \(i\) 要算出来如果加上边 \((S,i)\) 之后 \(1\to n\) 的最短路。
这个是经典问题,直接正反跑两遍单源最短路算出来 \(f,g\) 表示 \(1\to i,n\to i\) 的最短路,那么答案就是 \(f[n],f[S]+g,f+g[S]\) 中的最小值。本题中边权都是 \(1\),直接 BFS 即可。复杂度 \(O(n+m)\)。
AC Code
后记

《五彩斑斓的世界》


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

饭宝

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表