「总结」插头$dp$
集中做完了插头$dp$
写一下题解。
一开始学的时候还是挺蒙的。
不过后来站在轮廓线$dp$的角度上来看就简单多了。
其实就是一种联通性$dp$,只不过情况比较多而已了。
本来转移方式有两种。逐行和逐格转移。
不过逐行转移因为分类太多所以被舍弃了。
一般的插头$dp$采用逐格转移。
插头表示已经进入当前格子的状态,而并不是将要进入的状态。
状态的表示方式常见的有两种:最小表示法和括号表示法。
括号表示法不如说是广义括号表示法的特殊一种情况,每个插头也就是左右括号就是表示两个相匹配的回路部分,而最小表示法则是一般的广义括号匹配,只是括号只是单纯的表示一条线路的两端。
1.$Ural 1519 Formula 1$
括号表示法裸题。
设两个插头,1表示左括号,2表示右括号。
分一下类就可以了。
0.0 如果是障碍格子就直接转移,如果是普通格子就可以开两个新的左右括号。
下面的讨论均在非障碍格子下。
0.1|0.2|1.0|2.0 将插头下移或者右移。
1.1|2.2 首先将两个插头消除,找到其中一个插头匹配的插头,并将之改成这两个插头。
2.1 消除插头。
1.2 在最后一个非障碍格子更新答案。
2.$CITY$
跟上一题一模一样,不过是限定了转移的方向而已。
3.邮递员
仍然是括号表示法。
其实和第一题仍然没什么区别,就是要遍历所有的地方,并且形成回路,注意到回路的顺逆时针走向是不同方案,所以最后答案*2。
4.地板
这个就是最小表示法了。
设两个插头1,2分别表示没拐过和拐过弯的$L$形状,要求没有障碍物的部分都铺砖。
那么开始分类讨论。
如果有障碍物:只有0.0这种状态可以转移到下一个格子。
如果没有障碍物:
0.0 -> 1.0|0.1|2.2 表示当前点伸出能够从两个方向伸出两个可以拐弯的,或者根本就把这个点当作转折点,那两个方向都不可以拐弯。
0.1 -> 0.1|2.0
1.0 -> 1.0|0.2
0.2 -> 0.2|0.0 如果没有其他插头,并且在最后一个非障碍格子可以更新答案。
2.0 -> 2.0|0.0 如果没有其他插头,并且在最后一个非障碍格子可以更新答案。
1.1 -> 0.0 两个没拐弯的匹配上了。
2.2 -> 无法转移
1.2 -> 无法转移
5.标识设计
其实和上一个题几乎一模一样。
只不过在最后添加一维表示当前已经出现了的$L$有几个。
如果已经出现了的有$3$个并且当前这个格子可以作为其中某一个的结束位置,那么更新答案。
6.神奇游乐园
和第一题一模一样就是把求方案改成了求最值。
7.$Manhattan Wiring$
这个题由于确定了起点和终点,所以不需要用到括号匹配。
只用两个插头表示是哪个线的插头即可。
8.$ParkII$
看起来是括号匹配,其实是最小表示法
和神奇游乐园大体上一样,是CDQ的论文题了。
我们考虑新加入一个独立插头表示一条独立的路径,
由于这次要求路径,所以会麻烦一点,这里的左右括号就不仅仅表示回路的两头了,而是表示一条路径的两头,这就是所谓一般性广义括号表示法,也就是最小表示法。
左右括号转移大体上和神奇游乐园一样。
多出来的独立插头设为3。
多出来的转移就是:
0.0 -> 0.3|3.0
0.3|3.0 -> 0.3|3.0 如果只有一个插头的话就可以更新答案了。
3.1|3.2|1.3|2.3 -> 0.0 清空当前两个括号,然后把1或者2对应的括号改为3。
3.3 -> 如果只有这两个括号的话就可以更新答案了,不转移。
暂时这么多。
「总结」插头$dp$的更多相关文章
- 「笔记」数位DP
目录 写在前面 引入 求解 特判优化 代码 例题 「ZJOI2010」数字计数 「AHOI2009」同类分布 套路题们 「SDOI2014」数数 写在最后 写在前面 19 年前听 zlq 讲课的时候学 ...
- 「DP」区间dp
区间dp? 状态设计为描述一段区间的dp. eg:f[i][j]表示从 i 到 j 这个区间上的最优值.
- LOJ 2552 「CTSC2018」假面——DP
题目:https://loj.ac/problem/2552 70 分就是 f[i][j] 表示第 i 个人血量为 j 的概率.这部分是 O( n*Q ) 的:g[i][j][0/1] 表示询问的人中 ...
- 「bzoj1003」「ZJOI2006」物流运输 最短路+区间dp
「bzoj1003」「ZJOI2006」物流运输---------------------------------------------------------------------------- ...
- 「USACO16OPEN」「LuoguP3147」262144(区间dp
P3147 [USACO16OPEN]262144 题目描述 Bessie likes downloading games to play on her cell phone, even though ...
- loj #2143. 「SHOI2017」组合数问题
#2143. 「SHOI2017」组合数问题 题目描述 组合数 Cnm\mathrm{C}_n^mCnm 表示的是从 nnn 个互不相同的物品中选出 mmm 个物品的方案数.举个例子, 从 ...
- 「译」JUnit 5 系列:条件测试
原文地址:http://blog.codefx.org/libraries/junit-5-conditions/ 原文日期:08, May, 2016 译文首发:Linesh 的博客:「译」JUni ...
- 「译」JUnit 5 系列:扩展模型(Extension Model)
原文地址:http://blog.codefx.org/design/architecture/junit-5-extension-model/ 原文日期:11, Apr, 2016 译文首发:Lin ...
- JavaScript OOP 之「创建对象」
工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程.工厂模式虽然解决了创建多个相似对象的问题,但却没有解决对象识别的问题. function createPers ...
随机推荐
- 【大数据】SparkSql 连接查询中的谓词下推处理 (二)
本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/II48YxGfoursKVvdAXYbVg作者:李勇 目录:1.左表 join 后条件下推2.左表j ...
- Vue.js 源码分析(二十九) 高级应用 transition-group组件 详解
对于过度动画如果要同时渲染整个列表时,可以使用transition-group组件. transition-group组件的props和transition组件类似,不同点是transition-gr ...
- Vue.js 源码分析(十五) 指令篇 v-bind指令详解
指令是Vue.js模板中最常用的一项功能,它带有前缀v-,比如上面说的v-if.v-html.v-pre等.指令的主要职责就是当其表达式的值改变时,相应的将某些行为应用到DOM上,先介绍v-bind指 ...
- Prometheus 监控K8S Node监控
Prometheus 监控K8S Node监控 Prometheus社区提供的NodeExporter项目可以对主机的关键度量指标进行监控,通过Kubernetes的DeamonSet可以在各个主机节 ...
- Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'jdbc.username' in string value "${jdbc.username}"
1.启动dubbo的引用dubbo服务时候报下面这个错误,这是由于去找dubbo的发布服务未找到报的错误,所以先启动dubbo的发布服务即可. [INFO] Scanning for projects ...
- oracle 创建表、删除表、添加字段、删除字段、表备注、字段备注、修改表属性
1.创建表 create table 表名( classid number() primary key, 表字段 数据类型 是否允许为空(not null:不为空/null:允许空) 默认值(defa ...
- Eureka服务下线源码解析
我们知道,在Eureka中,可以使用如下方法使Eureka主动下线,那么本篇文章就来分析一下子这个下线的流程 public synchronized void shutdown() { if (isS ...
- Linux下实现不活动用户登录超时后自动登出
方法一:通过修改.bashrc或.bash_profile文件来实现 通过修改home目录下的.bashrc或.bash_profile文件来实现.这两个文件选择其中一个在末尾加入如下一行,具体操作 ...
- vue3.0和2.0的区别,Vue-cli3.0于 8月11日正式发布,更快、更小、更易维护、更易于原生、让开发者更轻松
vue3.0和2.0的区别Vue-cli3.0于 8月11日正式发布,看了下评论,兼容性不是很好,命令有不少变化,不是特别的乐观vue3.0 的发布与 vue2.0 相比,优势主要体现在:更快.更小. ...
- 基于JQuery可拖动列表格插件DataTables的踩坑记
前言 最近项目中在使用能够拖动列调整列位置顺序的表格插件---DataTables,这也是目前我找到的唯一一种存在有这种功能的插件. 在查找使用方法的过程中发现可用案例并不多,且大多言语不详.本文将全 ...