gym100825G. Tray Bien(轮廓线DP)
题意:3 * N的格子 有一些点是坏的 用1X1和1X2的砖铺有多少种方法
题解:重新学了下轮廓线 写的很舒服
#include <bits/stdc++.h> using namespace std; typedef long long ll;int n, m; int vis[30][5]; ll dp[25][1 << 3];void dfs(int num, int i, int state, int nex) {if(num == 3){dp[i + 1][nex] += dp[i][state];return;}if(vis[i][num + 1] || (state & (1 << num))) dfs(num + 1, i, state, nex);else{dfs(num + 1, i, state, nex); //填1x1if(!vis[i + 1][num + 1] && !(nex & (1 << num)))dfs(num + 1, i, state, nex | (1 << num)); //竖着填1X2if(num + 2 <= 3 && !vis[i][num + 2] && !(state & (1 << (num + 1))))dfs(num + 2, i, state, nex); // 横着填1X2 } }int main() {scanf("%d%d", &n, &m);for(int i = 1; i <= m; i++){double x, y;scanf("%lf%lf", &x, &y);vis[(int)x + 1][(int)y + 1] = 1;}dp[1][0] = 1LL;for(int i = 1; i <= n; i++)for(int st = 0; st < 8; st++)if(dp[i][st] > 0){bool f = true;for(int k = 0; k < 3; k++){if(st & (1 << k) && vis[i][k + 1]){f = false;break;}}if(!f) continue;dfs(0, i, st, 0);}printf("%lld\n", dp[n + 1][0]);return 0; }
View Code
转载于:https://www.cnblogs.com/lwqq3/p/9746461.html
gym100825G. Tray Bien(轮廓线DP)相关推荐
- [2021.1.13多校省选模拟2]T1(动态规划/轮廓线dp)
[2021.1.13多校省选模拟2]T1 一个经典的轮廓线dp,可以发现一定可以找到一条轮廓将这个图形分开,然后使得左半部分由左边处理,右半部分由右边处理,然后我们只需要处理这个折线即可,具体实现需要 ...
- 【TC SRM 312 Div1 Level3】CheapestIsland(轮廓线DP)(最小表示法)
传送门 随便抓了一道题来复习轮廓线DP. 听说和[JLOI2009 神秘的生物]本质上是一样的,没看,不清楚. 题解: 给一个棋盘图,每个格子有权值,求权值之和最小的连通块. 没什么难度,熟悉轮廓线的 ...
- 轮廓线DP(插头DP 裸 经典骨牌)
引言:所谓轮廓线,不是某一行,或者某一列,而是指某一个特定轮廓的状态. 放置骨牌的约定:(保证放置有最优子结构) 假设我们正在放置第i行的骨牌,那么会有下面3种方式: 灰色表示已经有的骨牌,绿色表示新 ...
- 【轮廓线dp】一双木棋
题目 棋盘格中,两人轮流下棋.下的棋必须左面,上面都已经下过棋. 每个棋盘格有两个值,分别代表两人下了该点能得到的分数. 每个人都想要(己方分数-对方分数)MAX 现每个人都采取最优策略,也知道对方要 ...
- 【HDU - 6185】Covering(矩阵快速幂优化二维dp,高斯消元,轮廓线dp打表)
题干: Bob's school has a big playground, boys and girls always play games here after school. To protec ...
- 2019.01.24 NOIP训练 旅行(轮廓线dp)
传送门 题意简述: 给一个n∗mn*mn∗m的有障碍的网格图,问你从左上角走到左下角并覆盖所有可行格子的路径条数. 思路: 路径不是很好算. 将图改造一下,在最前面添两列,第一列全部能通过,第二列只有 ...
- UVA dp题目汇总
UVa专题练习 A-4 10003 经典dp,可用四边形不等式优化 10029 基础dp,DAG最长路,需高效构图 10032 经典问题.子集和数问题.01背包问题 10036 能否在一个整数序列的每 ...
- 『ACM-算法-动态规划』初识DP动态规划算法
一.多阶段决策过程的最优化问题 在现实生活中,有类活 动的过程,由于 它的特殊性,可将过程分成若干个互相阶段.在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果.当阶段决策的选取不是任意确 ...
- (转)dp动态规划分类详解
dp动态规划分类详解 转自:http://blog.csdn.NET/cc_again/article/details/25866971 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间 ...
最新文章
- Windows IIS7 下安装配置 PHP7.0
- 个人博客 SEO 优化(2):站内优化
- Intel qsv + ffmpeg 硬解h264
- flink中的faker生成的数据后面带有~
- plsql轻量版触发器
- PAT (Basic Level) Practice (中文)1022 D进制的A+B (20 分)
- python数据库去重复_python string 去重复数据库
- @WebListener 注解方式实现监听(eclipse和idea)
- 数学建模竞赛大汇总,别再被野鸡竞赛坑啦
- 超全的网络安全精编自学资料合集(64份)
- ctf 实验吧 围在栅栏中的爱 (最近一直在好奇一个问题,QWE到底等不等于ABC? )
- 5V输入升压14.4V四串磷酸铁锂电池充电芯片板 ,12.8V-32号电路板
- 《信息系统安全》课后习题答案(陈萍)
- 管培生走下神坛,“高管捷径”破灭
- nodejs之简单的爬数据
- 2022 最新 JCR正式发布全球最新影响因子名单(前600名)
- 梅科尔工作室-华为云ModelArts的简单使用(附详细图解)
- 三星 android 调试模式设置,三星盖世4 usb调试怎么打开?安卓4.2怎样打开USB调试...
- C++入门——实现见缝插针游戏
- 简单好用的网络保护软件 lulu for mac 支持big sur系统
热门文章
- 连接mysql超时时间设置多少_怎么设置数据库的连接数和连接超时时间
- 1的恢复出厂设置在哪里_罗斯蒙特变送器怎么恢复出厂设置?
- java中怎么判断一段代码时线程安全还是非线程安全_Java 中的多线程你只要看这一篇就够了...
- from 下拉框多个值提交_Git commit 多行信息提交
- android让一个控件跟上面控件对其,学个明白--Android控件架构
- java抽象类异常_求教JAVA里面的错误继承抽象类我都已经看傻了。
- 是否可以限制蓝牙传输距离_技术文章—关于蓝牙传输范围的常见误解
- c语言箭头指针的作用,C语言中,结构体成员变量的点和箭头
- office数据集dslr_DSLR的完整形式是什么?
- bootstrap网格系统_如何使用Bootstrap网格系统?