D - Distinctive Character

思路:bfs

使最大的匹配数最小,转换一下,就是使最小的不匹配数最大,用bfs找最大的距离

代码:

#pragma GCC optimize(2)
#pragma GCC optimize(3)
#pragma GCC optimize(4)
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pi acos(-1.0)
#define LL long long
//#define mp make_pair
#define pb push_back
#define ls rt<<1, l, m
#define rs rt<<1|1, m+1, r
#define ULL unsigned LL
#define pll pair<LL, LL>
#define pii pair<int, int>
#define piii pair<pii, int>
#define mem(a, b) memset(a, b, sizeof(a))
#define fio ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define fopen freopen("in.txt", "r", stdin);freopen("out.txt", "w", stout);
//head const int N = 1e5 + ;
queue<int> q;
int dis[N*];
int main() {
fio;
int n, k, ans;
string s;
cin >> n >> k;
mem(dis, -);
for (int i = ; i <= n; i++) {
cin >> s;
int now = ;
for (int j = ; j < k; j++) if(s[j] == '') now |= <<j;
q.push(now);
dis[now] = ;
ans = now;
}
int mx = ;
while(!q.empty()) {
int now = q.front();
q.pop();
for (int i = ; i < k; i++) {
int nxt = now^(<<i);
if(dis[nxt] == -) {
dis[nxt] = dis[now] + ;
q.push(nxt);
if(dis[nxt] > mx) {
mx = dis[nxt];
ans = nxt;
}
}
}
}
for (int i = ; i < k; i++) {
if(ans & (<<i)) cout << ;
else cout << ;
}
cout << endl;
return ;
}

最新文章

  1. 轻松自动化---selenium-webdriver(python) (四)
  2. flex布局模式简单概述
  3. JQuery知识快览之四—样式
  4. Socket 之 API函数介绍
  5. leetcode@ [310] Minimum Height Trees
  6. linux时间自动同步
  7. Map集合中value()方法与keySet()、entrySet()区别
  8. HTTP, W3SVC, WAS 和 W3WP
  9. Java基础:泛型及其擦除性、不可协变性
  10. SynchronousQueue、LinkedBlockingQueue、ArrayBlockingQueue性能测试(转)
  11. Js 网页版扫雷游戏代码实现
  12. ke
  13. [PHP开发] phpmailer问题 错误原因: Could not instantiate mail function
  14. java.lang.NoClassDefFoundError: org/apache/jsp/jsp/Container_jsp
  15. kubernetes实践之五:深入理解Service及内部DNS搭建
  16. 在Netbeans的项目中添加JDBC驱动程序
  17. SSIS使用事务回滚
  18. Android 去除应用标题栏(Android Studio)
  19. EventTrigger动态添加监听事件
  20. Windows下配置Django环境

热门文章

  1. django变量使用-在模板中使用视图函数中的变量
  2. ssh 工具
  3. Angular4.X 介绍
  4. ubuntu----VMware 鼠标自由切换问题及主机虚拟机共享剪切板问题
  5. 【系列教程1】Gradle入门系列二:第一个Java项目
  6. 浅谈Java中static关键字、权限修饰符
  7. oracle的loop等循环语句的几个用法小例子
  8. 使用 node 创建代码服务器
  9. SVN的常用功能使用教程
  10. IIS客户端没有权限