atcoder beginner contest 249 c题的官方题解,其中出现了(i>>j)&1,不是很理解这个是什么意思。
题解代码:
#include <bits/stdc++.h>
using namespace std;
int main() {
int n,k;
cin>>n>>k;
vector<string> s(n);
for(int i=0;i<n;i++) cin>>s[i];
int ans=0;
for(int i=0;i<(1<<n);i++){
vector<int> sum(26);
for(int j=0;j<n;j++){
if((i>>j)&1){
for(int x=0;x<s[j].size();x++) sum[s[j][x]-'a']++;
}
}
int now=0;
for(int j=0;j<26;j++) if(sum[j]==k) now++;
ans=max(ans,now);
}
cout<<ans<<endl;
}
题目链接:
https://atcoder.jp/contests/abc249/tasks/abc249_c
题解链接:
https://atcoder.jp/contests/abc249/editorial/3882