2024.11.6训练记录

今天主要是做的单个题。
下次打模拟赛就是放假了。怕会有段时间没打手感下降/ll。

csp-J2024 D

dp。
f[i][j]表示,第i轮结束后,最终颜色是j的结束位置。
f[i][j] = -1:状态不能达到。
f[i][j] = 0 :可以在多个人处结束。(即有大于等于2个序列中的j颜色可以被转到)
f[i][j] = l :只有在第l个人处的j颜色能被转到。

考虑转移:第i轮时,枚举第r个序列中的位置j。当f[i - 1][a[j]] \neq -1 且 \neq r时,j后面的k个位置都可以作为结尾。
即f[i][[j + 1, j + k - 1]]都可以赋为r。
这里不用做区间赋值,而是维护当前这个位置和上一个满足条件位置的距离\leq k。

当f[r][c]为-1时,不能完成接龙,其余情况都可以。

这题难处理的其实是如何避免自己跟自己接龙,即避免在同一个序列中转移。自己想的方法就没考虑到这点。
赛时还真不一定做得出来。遗憾的。
这里记录f[i][j]只有一个时的情况就是为了避免这种情况。

posted @   docx君  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
点击右上角即可分享
微信分享提示