AtCoder Beginner Contest 245

比赛链接

A - Good morning

输入输出。

B - Mex

用个数组ai标记i是否出现过,然后遍历一遍就能知道答案。

C - Choose Elements

可以动态规划。

dpi,j表示前i个元素,结尾元素为j的状态是否可达, 其中j=0表示结尾是Aij=1表示结尾为Bi

dp0显然都可达,然后dpi可以很简单的从dpi1转移算出:枚举当前的结尾元素,枚举前一位的结尾元素,若二者差的绝对值小于K则可以转移。

dpn是否包含可达状态即可。

D - Polynomial division

多项式除法,就竖式除法模拟一下。

E - Wrapping Chocolate

贪心。

对于所有巧克力和盒子,按宽为第一关键字降序排序。

枚举巧克力,把所有宽度大于它的盒子加入候选。

现在候选中每一个盒子的宽度都比当前巧克力大,只需要长度再比他大即可。

然后由于候选中的宽度都是满足条件的,现在长度更珍贵,所以就贪心地选候选中长度条件满足且最小的那个。

F - Endless Walk

拓扑排序。

拓扑排序中环不会被遍历到,而环能走到的点会由于环这个前置条件没有满足而不会被遍历到,而其余点的前置条件都回逐渐被满足然后遍历到。

但是题目要的是能走到环的点,所以就在反图上搞,在反图上搞就是能走到环的点了。

存图的反图,然后拓扑排序,没有入过队的点均为答案。

G - Foreign Friends

最短路。

首先,设置一个虚拟源点,往所有popular连边长为0的边,这样点到虚拟源点的最短路就是到popular的最短距离。

然后,还要求说国籍要不同,所以再入队时可以标记一下路径的类型为国籍,并且传递下去,这样就可以知道枚举到的路径最终是到哪一个国籍的popular了。

但是这样复杂度还是会比较高,不过因为只要求国籍不同,所以维护最短和次短两个不同类型的最短路就可以了。

然后如果最短路的类型是不同国籍的,就直接用最短;不然就切换到次短。

Ex - Product Modulo 2

数数好难啊,专门写一篇题解吧,传送门

posted @   _Backl1ght  阅读(142)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· Apache Tomcat RCE漏洞复现(CVE-2025-24813)
点击右上角即可分享
微信分享提示