轮廓线动态规划是一种基于状态压缩解决和连通性相关的问题的动态规划方法 这道题是轮廓线动态规划的模板 讲解可以看lrj的蓝书 代码 #include <cstdio> #include <algorithm> #include <cstring> using namespace std; long long has[120][120],n,m,dp[2][1<<15],cur;// void update(int a,int b){ if(b&(1&l…
题目链接:https://vjudge.net/problem/UVA-11270 题意: 用2*1的骨牌填满n*m大小的棋盘,问有多少种放置方式. 题解: 骨牌类的插头DP. 1.由于只需要记录轮廓线上m个位置的放置情况(0或1),且m<=10,2^10 = 1024,故可以用二进制对轮廓线的信息进行压缩. 2.二进制中,第0为代表着当前轮廓线位于第0列的位置的放置情况,以此类推. 3.具体情况分析,设当前格子为a[i][j]: 1) 不放置:前提条件为上面的位置a[i-1][j]已经放置了骨…
\(\color{#0066ff}{ 题目描述 }\) 给定一个m×n的矩形网格,用1×2多米诺骨牌完全平铺. 请注意,即使一个平铺的旋转与另一个平铺相匹配,它们仍算作不同的平铺. 下面显示了一个平铺示例. 输入格式 输入包括多组数据.每组数据占一行,包含两个整数m,n(n×m≤100).输入结束标志为文件结束符(EOF). 输出格式 对于每组数据输出一行,输出总数. \(\color{#0066ff}{输入格式}\) 每组数据,两个整数 \(n,m\) \(\color{#0066ff}{输出…
Description Squares and rectangles fascinated the famous Dutch painter Piet Mondriaan. One night, after producing the drawings in his 'toilet series' (where he had to use his toilet paper to draw on, for all of his paper was filled with squares and r…
题目链接:uva 11270 - Tiling Dominoes 题目大意:用1∗2木块将给出的n∗m大小的矩阵填满的方法总数. 解题思路:插头dp的裸题,dp[i][s]表示第i块位置.而且该位置相应的行数的状态为s的时候的总情况数.0表示为竖放预留留的位置,1表示填上的位置.无论是竖放还是横放.而且第一位状态用滚动数组优化空间. #include <cstdio> #include <cstring> #include <algorithm> using names…
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2245 题意:求用1×2的棋子摆满n×m的棋盘的方案数.(n×m<=100) #include <bits/stdc++.h> using namespace std; long long d[2][1<<10], n, m; int main() { while…
Hello everyone, I am a Chinese noob programmer. I have practiced questions on leetcode.com for 2 years. During this time, I studied a lot from many Great Gods' articles. After worship, I always wanted to write an article as they did, and now I take t…
这种动归有很多名字,插头DP是最常见的 还有基于连通性的动态规划 轮廓线动态规划等等 超小数据范围,网格图,连通性 可能算是状态压缩DP的一种变式 以前我了解的状压DP用于NP难题的小数据范围求解 这里说一下哈密顿回路的概念: 哈密顿回路: .指一个对图的每个顶点都只穿越一次的回路.也可以 定义为n+1个相邻顶点v0, v1, … ,vn, v0的一个序列,其中序列的第一个顶点和最后一个顶点是相同的,而其他n-1个顶点是互不相同的. .当这个图是加权图时,求该图的最短哈密顿回路,就是传说中的旅行…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4804 题目大意 给你一个 \(n \times m\) 的矩形区域.你需要用 \(1 \times 1\) 和 \(1 \times 2\) 的砖块铺满这个区域,且满足如下要求: 所有的砖块可以竖着放或横着放: 砖角要放在格点上: \(1 \times 1\) 的砖不能少于 \(C\) 块也不能多于 \(D\) 块, \(1 \times 2\) 的砖没有数量限制. 有些方格在一开始就已经被填充了,…
Description Squares and rectangles fascinated the famous Dutch painter Piet Mondriaan. One night, after producing the drawings in his 'toilet series' (where he had to use his toilet paper to draw on, for all of his paper was filled with squares and r…