提交时间:2024-03-09 17:30:10

运行 ID: 137068

#include<bits/stdc++.h> using namespace std; int f[101][11],a[1025],n,m; queue<int>que; int js[12]; int main() { js[1]++; for(int i=2;i<=11;i++) js[i]=js[i-1]<<1; cin>>n>>m; for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) cin>>f[i][j]; int k=js[n+1]-1; que.push(k); while(!que.empty()){ int p=que.front(); que.pop(); if(!p) { cout<<a[p]<<endl; return 0; } for(int i=1;i<=m;i++) { int s=0; for(int j=1;j<=n;j++) { if(f[i][j]==0&&(p&js[j])){ s+js[j]; } if(f[i][j]==-1){ s+=js[j]; } } if(!a[s]&&s!=k){ a[s]=a[p]+1; que.push(s); } } } cout<<"The patient will be dead."; }