
状压dp
beckyUp
他强任他强,过题我在行
展开
-
已经没办法再简单的状压dp入门练习
题目: 有一个N*M(N<=5,M<=1000)的棋盘,现在有1*2及2*1的小木块无数个,要盖满整个棋盘,有多少种方式?答案只需要mod1,000,000,007即可。例如:对于一个2*2的棋盘,有两种方法,一种是使用2个1*2的,一种是使用2个2*1的。 分析:此题由于N比较小,所以可以通过状态压缩,去搜索每一个状态,然后根据前一列对后一列的影响,这样我们只要求出第m+1列状态为0的情况的个原创 2017-06-08 16:53:55 · 1343 阅读 · 0 评论 -
CodeForces - 906C Party 【状压dp】
我们通过状态压缩,然后判断转移的情况,然后主要通过| 的运算,将不是联通块中的人的朋友加入到联通块中的操作#include <bits/stdc++.h>#define cl(a) memset(a,0,sizeof(a))#define ll long long#define pb(i) push_back(i)#define mp make_pairusing nam...原创 2018-08-17 16:06:55 · 247 阅读 · 0 评论