标题
最大不超过3个筛子 让我们从其中任选筛子组合成数据 问我们组不成的最小的数是多少
分析
要模拟把最大3个筛子 选出1,2,3个的情况去组合 我们可以枚举所要选的数的数量
用next_permutation得到这n个数的全排列 这样不论的选几个筛子 都会便利到所有情况
然后在把所有情况统计一下
#include<bits/stdc++.h>using namespace std;
bool bok[1010];//最大不会超过999 所以标记桶的容量就一定了
int n,a[5][10],r[10];
void dfs(int now,int lim,int sum){if(now==lim){bok[sum]=1;return;}for(int i=1;i<7;i++){dfs(now+1,lim,sum*10+a[r[now]][i]);}
}
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){for(int j=1;j<=6;j++)scanf("%d",&a[i][j]);}for(int i=1;i<=n;i++){r[1]=1,r[2]=2,r[3]=3;do{dfs(1,1+i,0);}while(next_permutation(r+1,r+1+n));// 从第一个元素到最后一个都要选到}if(!bok[1])printf("0\n");else {for(int i=1;;i++){if(!bok[i]){printf("%d\n",i-1);break;}}}return 0;
}