80分求条
查看原帖
80分求条
1238611
harmis_yz楼主2023/12/13 18:24

rt.不知道哪里错了啊啊啊。

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define re register
#define il inline

const int N=(1<<22),M=1005;
int s[M],f[N];
int n,m,k;

il void solve(){
	memset(f,0x3f,sizeof(f));
	cin>>n>>m>>k;
	for(re int i=1;i<=n;++i){
		int cnt=0;
		for(re int j=1;j<=k;++j){
			int x;cin>>x;cnt+=(1<<(x-1));
		}
		s[i]=cnt;
	}
	f[0]=0;
	for(re int i=0;i<(1<<m);++i)
	for(re int j=1;j<=n;++j)
		f[i|s[j]]=min(f[i|s[j]],f[i]+1);
	if(f[(1<<m)-1]>1000) cout<<"-1";
	else cout<<f[(1<<m)-1];
	return ;
}

signed main(){
	solve();
	return 0;
}

2023/12/13 18:24
加载中...