10 条题解
-
1
想当年(2023)做出这道题之后张正标老师请我们吃了披萨哈哈哈,现在都2026年了,我也老了(13岁
#include<cmath> #include<iomanip> #include <string> #include <algorithm> #define LL long long using namespace std; int INF=0x3f3f3f3f; const int N=1e5+10; int t,n,z,c,ans=1;//000000也行 int xz[62]; bool dzy(int m) { for(int i=1;i<=n;i++) { if((m&xz[i])==xz[i]) return 0; } return 1; } int main() { cin>>t>>n; for(int i=1;i<=n;i++) { cin>>z; for(int j=1;j<=z;j++) { cin>>c; xz[i]=xz[i]|(1<<(c-1)); } } for(int i=1;i<=(1<<t)-1;i++) { if(dzy(i)) ans++; } cout<<ans; return 0; } -
1
包AC
#include<bits/stdc++.h> using namespace std; int n,t,xz[100005],x,z,ans; bool p(int x) { for(int i=1;i<=n;i++) { if((x&xz[i])==xz[i])return 0; } return 1; } signed main() { ios::sync_with_stdio(0); cin.tie(0); cin>>t>>n; for(int i=1;i<=n;i++) { cin>>x; while(x--) { cin>>z; xz[i]=xz[i]|(1<<(z-1)); } } for(int i=0;i<(1<<t);i++) { if(p(i))ans++; } cout<<ans; return 0; } -
-1
#include <bits/stdc++.h> using namespace std; int xz[114524],cnt=0; int t,n,z,x;; int check(int x){ for(int i=1;i<=n;i++){ if((xz[i]&x)==xz[i]){ return 0; } } return 1; } int main(){ // 1 1 1 1 1 1 6个原料都用 cin>>t>>n; for(int i=1;i<=n;i++){ cin>>z;//输入限制 for(int j=1;j<=z;j++){ cin>>x;//当前的限制 xz[i]=xz[i] | 1<<(x-1); } } for(int i=0;i<(1<<t);i++){ // 枚举 1- 11111 if(check(i)) cnt++; } cout<<cnt; }
-
-1
using namespace std; int xz[10000],cnt=0,t,n,z,x; int check(int x){ for(int i=1;i<=n;i++){ if((xz[i]&x)==xz[i]){ return 0; } } return 1; } int main(){ cin>>t>>n; for(int i=1;i<=n;i++){ cin>>z; for(int j=1;j<=z;j++){ cin>>x; xz[i]=xz[i]|1<<(x-1); } } for(int i=0;i<(1<<t);i++){ if(check(i)){ cnt++; } } cout<<cnt; } -
-1
#include<bits/stdc++.h> using namespace std; int xz[10000],cnt=0,t,n,z,x; int check(int x){ for(int i=1;i<=n;i++){ if((xz[i]&x)==xz[i]){ return 0; } } return 1; } int main(){ cin>>t>>n; for(int i=1;i<=n;i++){ cin>>z; for(int j=1;j<=z;j++){ cin>>x; xz[i]=xz[i]|1<<(x-1); } } for(int i=0;i<(1<<t);i++){ if(check(i)){ cnt++; } } cout<<cnt;
}
-
-1
#include<bits/stdc++.h> using namespace std; int xz[10000],cnt=0; int t,n,z,x; int check(int x) { for(int i=1;i<=n;i++) { if((xz[i]&x)==xz[i]) { return 0; } } return 1; } int main() { cin>>t>>n; for(int i=1;i<=n;i++) { cin>>z; for(int j=1;j<=z;j++) { cin>>x; xz[i]=xz[i] | 1<<(x-1); } } for(int i=0;i<(1<<t);i++) { if(check(i)) { cnt++; } } cout<<cnt; } -
-1
#include<bits/stdc++.h> using namespace std; int xz[10000],cnt=0,t,n,z,x; int check(int x){ for(int i=1;i<=n;i++){ if((xz[i]&x)==xz[i]){ return 0; } } return 1; } int main(){
cin>>t>>n; for(int i=1;i<=n;i++){ cin>>z; for(int j=1;j<=z;j++){ cin>>x; xz[i]=xz[i]|1<<(x-1); } } for(int i=0;i<(1<<t);i++){ if(check(i)){ cnt++; } } cout<<cnt;}
-
-1
#include<bits/stdc++.h> using namespace std; int xz[10000],cnt=0; int t,n,z,x; int check(int x) { for(int i=1;i<=n;i++) { if((xz[i]&x)==xz[i]) { return 0; } } return 1; } int main() { cin>>t>>n; for(int i=1;i<=n;i++) { cin>>z; for(int j=1;j<=z;j++) { cin>>x; xz[i]=xz[i] | 1<<(x-1); } } for(int i=0;i<(1<<t);i++) { if(check(i)) { cnt++; } } cout<<cnt; }
-
-1
#include<bits/stdc++.h> using namespace std; int xz[10000],cnt=0,t,n,z,x; int check(int x){ for(int i=1;i<=n;i++){ if((xz[i]&x)==xz[i]){ return 0; } } return 1; } int main(){
cin>>t>>n; for(int i=1;i<=n;i++){ cin>>z; for(int j=1;j<=z;j++){ cin>>x; xz[i]=xz[i]|1<<(x-1); } } for(int i=0;i<(1<<t);i++){ if(check(i)){ cnt++; } } cout<<cnt;}
-
-1
using namespace std; int xz[10000],cnt=0; int t,n,z,x; int check(int x){ for(int i=1;i<=n;i++){ if((xz[i]&x)==xz[i]){ return 0; } } return 1; } void quicksort(int a[],int left,int right){ if(left>=right){ return ; } int t=a[left]; int i=left,j=right; while(i<j){ while(i<j&&a[j]>=t) j--; while(i<j&&a[i]<=t) i++; if(i<j){ swap(a[i],a[j]); } } swap(a[i],a[left]); quicksort(a,left,i-1); quicksort(a,i+1,right); } int main(){ cin>>t>>n; for(int i=1;i<=n;i++){ cin>>z; for(int j=1;j<=z;j++){ cin>>x; xz[i]=xz[i] | 1<<(x-1); } } for(int i=0;i<(1<<t);i++){ if(check(i)){ cnt++; } } cout<<cnt; return 0; }
- 1
信息
- ID
- 2549
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 257
- 已通过
- 95
- 上传者