YBTOJ炮兵阵地&&洛谷P2704
题目传送门
状压DP,详见代码
留给自己以后遇到题不会的模板
#include<bits/stdc++.h>
using namespace std;
int n,m,k;
int s[1005],g[1005];
int f[102][1005][1005],ans;
char ma[103];
int mp[103];
int get(int x)
{
int e=0;
while(x>0)
{
++e;
x-=x&(-x);
}
return e;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;++i)
{
scanf("%s",ma);
for(int j=0;j<m;++j)
if(ma[j]=='H') mp[i]+=1<<j;
}
for(int i=0;i<=(1<<m)-1;++i)
if(((i&(i<<1))==0)&&((i&(i<<2))==0)&&((i&(i>>1))==0)&&((i&(i>>2))==