轮廓线 dp 是一种和插头 dp 基本相同的东西,所以先看一下轮廓线 dp。

Tiling Dominoes

与状压 dp 不同的是,轮廓线 dp 是通过逐格转移来进行 dp 的。我们用三维 \(f_{i, j, k}\) 来表示 dp 状态。其中,\(i,j\) 表示当前进行到 \((i,j)\) 这个格子,\(k\) 表示轮廓线状态。具体的,在下面的情况中,\(k = \texttt{(11001001)}_2\)。

回到题目。

  • 当这个格子被覆盖了,也就是 \(k\) 的第 \(j\) 位为 \(\texttt{1}\) 时,我们不能在格子上放任何多米诺骨牌。\(k\) 的第 \(j\) 位变成 \(\texttt{0}\)。
  • 当这个格子没有被覆盖,也就是 \(k\) 的第 \(j\) 位为 \(\texttt{0}\):
    • 我们可以竖着放。\(k\) 的第 \(j\) 位变成 \(\texttt{1}\)。
    • 当 \(k\) 的第 \(j - 1\) 位之前选择的是竖着放的时候,说明本来 \(j - 1\) 是空闲的。我们可以把这个多米诺骨牌横过来。\(k\) 的第 \(j - 1\) 位变成 \(\texttt{0}\)。
    • 这里我们没有暂时空闲的情况,因为暂时空闲给下一个格子放横的骨牌的情况已经被处理过了。

​ 时间复杂度 \(\mathcal{O}(nm2^m)\)。这里转移是 \(\mathcal{O}(1)\) 的,这也是轮廓线 dp 的优势。

Guards In The Storehouse

这道题难点主要在于 dp 状态的设计和繁琐的转移。转移不多叙述。

设 \(f_{i, j, k, x, y}\) 表示当前在 \((i, j)\) 格子,当前 \(m\) 列每一列是否被占用的状态为 \(k\),这一行有没有被占用的布尔值为 \(x\),空一格的机会是否被使用的布尔值为 \(y\)。

轮廓线 dp的更多相关文章

  1. 轮廓线DP POJ3254 && BZOJ 1087

    补了一发轮廓线DP,发现完全没有必要从右往左设置状态,自然一点: 5 6 7 8 9 1 2 3 4 如此设置轮廓线标号,转移的时候直接把当前j位改成0或者1就行了.注意多记录些信息对简化代码是很有帮 ...

  2. HDU4804 Campus Design 轮廓线dp

    跟上面那篇轮廓线dp是一样的,但是多了两个条件,一个是在原图上可能有些点是不能放的(即障碍),所以转移的时候要多一个判断color[i][j]是不是等于1什么的,另外一个是我们可以有多的1*1的骨牌, ...

  3. POJ2411 Mondriaan's Dream 轮廓线dp

    第一道轮廓线dp,因为不会轮廓线dp我们在南京区域赛的时候没有拿到银,可见知识点的欠缺是我薄弱的环节. 题目就是要你用1*2的多米诺骨排填充一个大小n*m(n,m<=11)的棋盘,问填满它有多少 ...

  4. UVA - 11270 轮廓线DP

    其实这题还能用状压DP解决,可是时间达到2000ms只能过掉POJ2411.状压DP解法详见状压DP解POJ2411 贴上POJ2411AC代码 : 2000ms 时间复杂度h*w*(2^w)*(2^ ...

  5. [UOJ422][集训队作业2018]小Z的礼物——轮廓线DP+min-max容斥

    题目链接: [集训队作业2018]小Z的礼物 题目要求的就是最后一个喜欢的物品的期望得到时间. 根据$min-max$容斥可以知道$E(max(S))=\sum\limits_{T\subseteq ...

  6. 【UOJ#422】【集训队作业2018】小Z的礼物(min-max容斥,轮廓线dp)

    [UOJ#422][集训队作业2018]小Z的礼物(min-max容斥,轮廓线dp) 题面 UOJ 题解 毒瘤xzy,怎么能搬这种题当做WC模拟题QwQ 一开始开错题了,根本就不会做. 后来发现是每次 ...

  7. BZOJ.4572.[SCOI2016]围棋(轮廓线DP)

    BZOJ 洛谷 \(Description\) 给定\(n,m,c\).\(Q\)次询问,每次询问给定\(2*c\)的模板串,求它在多少个\(n*m\)的棋盘中出现过.棋盘的每个格子有三种状态. \( ...

  8. 4572: [Scoi2016]围棋 轮廓线DP KMP

    国际惯例的题面:这种题目显然DP了,看到M这么小显然要状压.然后就是具体怎么DP的问题.首先我们可以暴力状压上一行状态,然后逐行转移.复杂度n*3^m+3^(m*2),显然过不去. 考虑状态的特殊性, ...

  9. Solid Dominoes Tilings (轮廓线dp打表 + 容器)

    第一步先打一个表,就是利用轮廓线DP去打一个没有管有没有分界线组合数量的表 #include<bits/stdc++.h> using namespace std; ; <<; ...

  10. HDU 4802 && HDU 4803 贪心,高精 && HDU 4804 轮廓线dp && HDU 4805 计算几何 && HDU 4811 (13南京区域赛现场赛 题目重演A,B,C,D,J)

    A.GPA(HDU4802): 给你一些字符串对应的权重,求加权平均,如果是N,P不计入统计 GPA Time Limit: 2000/1000 MS (Java/Others)    Memory ...

随机推荐

  1. JS 原型链查找

    我们都知道面向对象语言如 Java, C++ 等都基本实现了 封装, 继承, 多态 等特性, 用面向对象语言来编程的基本套路就是抽象出类, 然后实例化, 用实例调用方法来模拟进行程序间的通信. 但 J ...

  2. Java Solon-MCP 实现 MCP 实践全解析:SSE 与 STDIO 通信模式详解

    参文参考自:https://blog.csdn.net/lingding_cn/article/details/147355620 一.MCP简介 MCP(Model Context Protocol ...

  3. 结合pandas,sqlite3批量将csv数据导入sqlite数据库

    import sqlite3 import pandas as pd conn=sqlite3.connect(r'demo.db') c=conn.cursor() 创建新表 c.execute(& ...

  4. github每次提交代码都要登录

    原因:不要使用https的方式克隆代码,而是用git. 查看源 git remote -v 删除源 git remote rm origin 重新添加项目源(origin后面改成自己的): git r ...

  5. SpringSecurity配置 2

    SpringSecurity配置 2 目前的现状,虽然是有了登录认证的接口,但是登录完成后,当我们访问受保护的接口时,即使将 Token 令牌携带与请求一起发送,依然是无法请求成功.另外,提示信息如下 ...

  6. JuiceFS 企业版 5.2:迈入千亿文件时代,稳定性与性能再升级,首次支持 Windows 客户端

    JuiceFS 企业版 5.2 版本近日发布,文件管理规模迈入千亿级.此次升级重点提升了超大规模集群的稳定性,优化了分布式缓存的网络性能,并增强了系统的易用性与安全性,旨在支持高并发访问等复杂的高性能 ...

  7. windows系统部署minio

    下载 在官网下载exe https://dl.min.io/server/minio/release/windows-amd64/ 创建文件夹 把minio.exe放到一个文件夹里,然后同目录里再新建 ...

  8. Nginx配置HTTPS认证

    概述 什么是https? 可以阅读这篇文章:https://www.cnblogs.com/huangSir-devops/p/18806406 在生产环境中,网站的访问一般都是使用https加密的, ...

  9. win10 hyper-v 配置教程

    非家庭版跳过以下这一步. pushd "%~dp0" dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hv.txt ...

  10. redis实现持久化存储的两种方案

    一.简单说明 redis是非关系型数据库,是一种内存型数据库.数据存储在内存中,所以当我们关掉软件,或者拔掉电源时,内存中的数据就会丢失.针对此场景,这里提出持久化的方案.它的核心就是将内存中的数据存 ...