很简单啊

#include<cstdio>
#include<cstdlib>
#include<cstring>

struct ptype{int v,a[10],t;};
int n,m;
int y[101][10];
ptype q[2000];
bool zt[2000];
int f=0,r=1;
int ans=0;

int main()
{
scanf("%d %d",&n,&m);
for (int i=0;i<m;i++)
{
for (int j=0;j<n;j++)
scanf("%d",&y[i][j]);
}
memset(zt,false,sizeof(zt));
q[f].v=0;
for (int i=0;i<n;i++)
{
q[f].a[i]=1;
q[f].v*=2;
q[f].v+=1;
}
q[f].t=0;
zt[q[f].v]=true;
int x;
while (f!=r)
{
for (int i=0;i<m;i++)
{
q[r]=q[f];
x=0;
for (int j=0;j<n;j++)
{
if (y[i][j]==1) q[r].a[j]=0;
if (y[i][j]==-1) q[r].a[j]=1;
x*=2;
x+=q[r].a[j];
}
if (zt[x]==false)
{
q[r].v=x;
q[r].t++;
zt[x]=true;
r++;
}
if (x==0) {ans=q[f].t+1;break;}
}
if (ans!=0) break;
f++;
}
if (ans==0) printf("The patient will be dead.");
else printf("%d",ans);
return 0;
}

3 条评论

  • 1

信息

ID
1026
难度
6
分类
搜索 | 搜索与剪枝 点击显示
标签
(无)
递交数
3640
已通过
1102
通过率
30%
被复制
19
上传者