标签:tps 枚举 ret string using math define algorithm read
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
#include<set>
#define ll long long
using namespace std;
inline int read(){
int x=0,o=1;char ch=getchar();
while(ch!='-'&&(ch<'0'||ch>'9'))ch=getchar();
if(ch=='-')o=-1,ch=getchar();
while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
return x*o;
}
int a[105][15],f[1050];
queue<int>q;
int main(){
int n=read(),m=read();
for(int i=1;i<=m;++i)
for(int j=1;j<=n;++j)a[i][j]=read();
for(int i=0;i<(1<<n)-1;++i)f[i]=1e9;f[(1<<n)-1]=0;
q.push((1<<n)-1);
while(q.size()){
int u=q.front();q.pop();
for(int i=1;i<=m;++i){
int v=u;
for(int j=1;j<=n;++j){
if(a[i][j]==-1)v|=1<<(j-1);
if(a[i][j]==1)if(v&(1<<(j-1)))v^=1<<(j-1);
}
if(f[v]==1e9)f[v]=f[u]+1,q.push(v);
}
}
if(f[0]==1e9)puts("-1");
else printf("%d\n",f[0]);
return 0;
}
标签:tps 枚举 ret string using math define algorithm read
原文地址:https://www.cnblogs.com/PPXppx/p/11723882.html