admin管理员组文章数量:1607347
题目链接:Distinctive Character
到所有串的不相似度的最大值最小。
其实就是到所有串相似度最小值最大。
所以我们把初始状态拿出来bfs即可。
AC代码:
#pragma GCC optimize("-Ofast","-funroll-all-loops")
#include<bits/stdc++.h>
//#define int long long
using namespace std;
int d[1<<20],n,k,s,mx,res; char str[30]; queue<int> q;
signed main(){
cin>>n>>k; memset(d,-1,sizeof d);
for(int i=1,tmp;i<=n;i++){
tmp=0; scanf("%s",str);
for(int j=0;j<k;j++) if(str[j]=='1') tmp|=(1<<j);
d[tmp]=0; q.push(tmp);
}
while(q.size()){
int u=q.front(); q.pop();
for(int i=0;i<k;i++){
int now=u^(1<<i);
if(d[now]==-1){
d[now]=d[u]+1; q.push(now);
if(d[now]>mx) mx=d[now],res=now;
}
}
}
for(int i=0;i<k;i++) printf("%d",(res>>i&1));
return 0;
}
本文标签: distinctivecharacter
版权声明:本文标题:Distinctive Character 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1728518192a1161828.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论