提交时间:2021-05-27 21:46:11
运行 ID: 20009
#include<bits/stdc++.h> using namespace std; int a[1005][20],b[20],i,j,n,k,flag=1,ans=1; int main(){ cin>>n>>k; for(i=1;i<=n&&flag;++i)//n个人 for(j=1;j<=k&&flag;++j){//k种配方要求 cin>>a[i][j]; if(a[i][j]==0)continue;//如果是0,不处理 if(b[j]==0)b[j]=a[i][j];//如果第j种配方没有设置,就设置。 else if(b[j]!=a[i][j])flag=0;//如果读入的配方有矛盾,则无解 } for(i=1;i<=k;++i) if(b[i]==0)ans*=2;//配方选择为0,表示可有可无,两种情况,乘法原理 if(flag)cout<<ans; else cout<<"-1"; return 0; }