洛谷2704 炮兵阵地

题目:炮兵阵地


思路:位运算+记忆化搜索


注意:记忆化时要存2个状态


代码:

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;

#define maxn 100
#define maxm 10

int n,m;
int a[maxn]={0};
int b[1<>1)||x&(x>>2)) return -1;	//左右不能放 
	
	int y=x,t=0,s=0;	//预处理出每种状态下炮兵的个数 
	while(y){
		t=y&1;
		if(t==1) s++;
		y>>=1;
	}
	
	return s;
}

int dfs(int step,int state1,int state2){
	
	if(step==n){
		return 0;
	}
	
	int ans=0;
	for(int i=0;i<(1<>x;
		for(int j=0;j


你可能感兴趣的:(洛谷2704 炮兵阵地)