当前位置:网站首页>unr #6day1 T2题解
unr #6day1 T2题解
2022-08-10 16:41:00 【Flame*】
看着题解我没太理解 我一直没搞懂那个 p r e pre pre 的为转移为什么不会重复) 后来我迷过来了
希望您先看过官方题解 并且有一定的理解之后 再来看我这一点浅薄的补充
60pts
我们从60分的dp套dp开始
首先我们要搞明白 f i , j , v f_{i,j,v} fi,j,v 这个dp方程为什么有必要
考虑一种不对的dp f i , j , k , w f_{i,j,k,w} fi,j,k,w 表示前 i i i 个位置 用了 j j j 个 S S S 里的字符 剩余 k k k 个0没用 w w w 个1没用
上述dp不对的原因是会重复
所以我们得考虑 我们不能dp:有多少种方法能拼序列。
而是要dp: 有多少种序列能被表示
因此 f i , j , v f_{i,j,v} fi,j,v 这个dp方程里 v v v 的作用就在于区分不同的 T T T 我们不再关注 T T T 可以被 s , t s,t s,t 怎么组合出,只关心它:能不能被组合出,而不同的组合方式视作相同 记录在 v v v 里
100pts
瓶颈在与 v v v 所以我们考虑要钦定 T T T 中能被 S S S 表示的位置 优先被 S S S 表示 除非与 S S S 不同 才用 T T T 里的字符
f i , j f_{i,j} fi,j 表示 S S S 在第 i i i 位 剩余 j j j 个 t t t 里的0
这样有一个问题 比如序列010100
假设 S = 010101 S=010101 S=010101
那么按照我们的钦定规则 在考虑第六位的时候有一个很尴尬的事: 我们 S S S 表示不了了 但是也没有 1
这个时候我们再考虑去调整 S S S 的匹配范围: 把它缩小
这样 S S S 每次都尽量匹配极长 就一定不重了
那么请问要缩小多少呢
我们考虑把0看成+1 1 看成 -1 然后做前缀和
把当前位置记作 j j j 找到最近的 i i i 满足 b s i < b s j bs_i<bs_j bsi<bsj 注意 这里是 s s s 序列 而不是 T T T 序列 s s s 序列 反应在 T T T 上并不一定连续
那么可以注意到 [ i + 1 , j ] [i+1,j] [i+1,j] 的这一段一定形如 1…(1的个数比-1的个数恰好大1)
如果用t来代替这一段 就正好多了一个位置 可以补给我们目前扫到的 T T T 上的这一位置 k k k
那么新匹配的长度就是 i i i
边栏推荐
猜你喜欢

李斌带不动的长安新能源高端梦,华为和“宁王”能救吗?

3 年 CRUD 从 8K 涨到 28K,谁知道这4个月我到底经历了什么?

LabView---双通道示波器(内含信号发生器)

Alluxio on Amazon EMR 集成实践

Annual salary of 600,000+?This 100,000-word interview assault book covers all technology stacks from Ali P5 engineers to P7

国内油价四连跌,但下跌趋势可能终止

需求骤降,成本激增,PC行业再次入冬

雷达人体存在感应器,人体感知控制应用,为客户提供真实的感知方案

babylonjs shader

易基因|深度综述:m6A RNA甲基化在大脑发育和疾病中的表观转录调控作用
随机推荐
How to use bitwise operators in C language
华为-坐标移动
找到一个超级神奇,百试百灵的解决 ModuleNotFoundError: No module named xxx 的方法
kuangbin专题一 简单搜索
v-model指令:获取和设置表单元素的值
PC软件问题二[Win10系统将UltraEdit添加到右键菜单的方法]
cube-studio配置镜像仓库并允许
Pytorch GPU模型推理时间探讨2——显卡warm up
神经网络的图像识别技术,神经网络识别图像原理
leetcode:281. 锯齿迭代器
C专家编程 第10章 再论指针 10.4 向函数传递一个一维数组
视频转成gif动图怎么操作?仅需三步在线完成视频转gif
ahx文件转mav文件 工具分享及说明
Redis下载安装教程 (windows)
分享几个自动化测试的练手项目
rtsp 和 rtmp 推流(一)
被大厂面试官参考的Redis笔记,堪称Redis面试天花板
一种新的测试方法:视觉感知测试
RMAN-08120的处理
FTXUI基础笔记(botton按钮组件进阶)