1 solutions
-
1
#include<bits/stdc++.h> using namespace std; const int N=105,M=25,K=25; int n,m,k; int g[N]; int f[1<<21]; queue<pair<int,int> >q; void bfs(int xs) { q.push({xs,0}); f[xs]=1; while(!q.empty()) { int x=q.front().first,t=q.front().second; q.pop(); if(x==(1<<m)-1) { cout<<t; return; } for(int i=0;i<n;i++) if(!f[x|g[i]]) q.push({x|g[i],t+1}),f[x|g[i]]=1; } cout<<-1; } signed main() { cin>>n>>m>>k; for(int i=0;i<n;i++) for(int j=1,o;j<=k;j++) (cin>>o),g[i]|=(1<<(o-1)); bfs(0); return 0; }
- 1
Information
- ID
- 407
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 10
- Tags
- # Submissions
- 2
- Accepted
- 1
- Uploaded By