P1879 玉米田 基础状压DP

 链接:  https://www.luogu.org/problemnew/show/P1879

AC代码:

#include
const int mod = 100000000;
typedef long long ll;
using namespace std;
int pos[15];
int dp[13][5000];

bool judge(int x) {
	return ((x & (x>>1))==0 && (x & (x<<1))==0);
}

bool judge(int x, int y) {
	return ((x&y)==0);
}

int main() {
	int m,n;
	cin>>n>>m;
	memset(dp,0,sizeof(dp));
	for(int i=1; i<=n; i++) {
		for(int j=1; j<=m; j++) {
			int sup;
			cin>>sup;
			pos[i] += sup<<(m-j);
		}
	}
	
	dp[0][0]=1;//第0行只有一块土地都不种这种情况 
	
	for(int l=1;l<=n;l++){//上一行一块土地都不种的时候,下一行所有情况都可以满足条件,所以可以直接从第一行进行枚举 
		for(int i=0;i<=((1<

 

你可能感兴趣的:(算法小笔记)