集中做完了插头$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$的更多相关文章

  1. 「笔记」数位DP

    目录 写在前面 引入 求解 特判优化 代码 例题 「ZJOI2010」数字计数 「AHOI2009」同类分布 套路题们 「SDOI2014」数数 写在最后 写在前面 19 年前听 zlq 讲课的时候学 ...

  2. 「DP」区间dp

    区间dp? 状态设计为描述一段区间的dp. eg:f[i][j]表示从 i 到 j 这个区间上的最优值.

  3. LOJ 2552 「CTSC2018」假面——DP

    题目:https://loj.ac/problem/2552 70 分就是 f[i][j] 表示第 i 个人血量为 j 的概率.这部分是 O( n*Q ) 的:g[i][j][0/1] 表示询问的人中 ...

  4. 「bzoj1003」「ZJOI2006」物流运输 最短路+区间dp

    「bzoj1003」「ZJOI2006」物流运输---------------------------------------------------------------------------- ...

  5. 「USACO16OPEN」「LuoguP3147」262144(区间dp

    P3147 [USACO16OPEN]262144 题目描述 Bessie likes downloading games to play on her cell phone, even though ...

  6. loj #2143. 「SHOI2017」组合数问题

    #2143. 「SHOI2017」组合数问题   题目描述 组合数 Cnm\mathrm{C}_n^mC​n​m​​ 表示的是从 nnn 个互不相同的物品中选出 mmm 个物品的方案数.举个例子, 从 ...

  7. 「译」JUnit 5 系列:条件测试

    原文地址:http://blog.codefx.org/libraries/junit-5-conditions/ 原文日期:08, May, 2016 译文首发:Linesh 的博客:「译」JUni ...

  8. 「译」JUnit 5 系列:扩展模型(Extension Model)

    原文地址:http://blog.codefx.org/design/architecture/junit-5-extension-model/ 原文日期:11, Apr, 2016 译文首发:Lin ...

  9. JavaScript OOP 之「创建对象」

    工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程.工厂模式虽然解决了创建多个相似对象的问题,但却没有解决对象识别的问题. function createPers ...

随机推荐

  1. mybatis使用collection查询集合属性规则

    接上篇mybatis使用associaton进行分步查询 相关的类还是上篇中的类. 查询部门的时候将部门对应的所有员工信息也查询出来 DepartmentMapper.xml <!--嵌套结果集 ...

  2. sqlplus简单使用

    登录 C:\Users\inmeditation>sqlplus 请输入用户名: scott 输入口令: 查看当前行长 SQL> show linesize; linesize 80 查看 ...

  3. poj-3404 Bridge over a rough river Ad Hoc

    Bridge over a rough river POJ - 3404 Bridge over a rough river Time Limit: 1000MS   Memory Limit: 65 ...

  4. Nginx Cache-Control

    转自:https://www.cnblogs.com/sfnz/p/5383647.html HTTP协议的Cache-Control指定请求和响应遵循的缓存机制.在请求消息或响应消息中设置 Cach ...

  5. Vue动态修改网页标题

    业务需求,进入页面的时候,网页有个默认标题,加载的网页内容不同时,标题需要变更. 例:功能授权,功能授权(张三). Vue下有很多的方式去修改网页标题,这里总结下解决此问题的几种方案: 一.最笨方案 ...

  6. kali渗透综合靶机(十三)--Dina 1.0靶机

    kali渗透综合靶机(十三)--Dina 1.0靶机 一.主机发现 1.netdiscover -i eth0 -r 192.168.10.0/24 二.端口扫描 1. masscan --rate= ...

  7. kali渗透综合靶机(四)--node1靶机

    kali渗透综合靶机(四)--node1靶机 靶机下载地址::https://download.vulnhub.com/node/Node.ova 一.主机发现 1.netdiscover -i et ...

  8. 分布式Redis深度历险-Cluster

    本文为分布式Redis深度历险系列的第三篇,主要内容为Redis的Cluster,也就是Redis集群功能. Redis集群是Redis官方提供的分布式方案,整个集群通过将所有数据分成16384个槽来 ...

  9. Android studio R文件丢失或错误解决方法

    android studio中有时引用资源会出现R文件丢失或报错,大多数情况下是由于引入资源时R文件没有及时更新造成的 (在代码没有错误或资源引用没有错误的前提下) 注意:资源文件的文件名必须小写,即 ...

  10. 高性能TcpServer(C#) - 4.文件通道(处理:文件分包,支持断点续传)

    高性能TcpServer(C#) - 1.网络通信协议 高性能TcpServer(C#) - 2.创建高性能Socket服务器SocketAsyncEventArgs的实现(IOCP) 高性能TcpS ...