当前位置: 首页 > news >正文

Codeforces 101572 D - Distinctive Character

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 + 5;
queue<int> q;
int dis[N*15];
int main() {
    fio;
    int n, k, ans;
    string s;
    cin >> n >> k;
    mem(dis, -1);
    for (int i = 1; i <= n; i++) {
        cin >> s;
        int now = 0;
        for (int j = 0; j < k; j++) if(s[j] == '1') now |= 1<<j;
        q.push(now);
        dis[now] = 0;
        ans = now;
    }
    int mx = 0;
    while(!q.empty()) {
        int now = q.front();
        q.pop();
        for (int i = 0; i < k; i++) {
            int nxt = now^(1<<i);
            if(dis[nxt] == -1) {
                dis[nxt] = dis[now] + 1;
                q.push(nxt);
                if(dis[nxt] > mx) {
                    mx = dis[nxt];
                    ans = nxt;
                }
            }
        }
    }
    for (int i = 0; i < k; i++) {
        if(ans & (1<<i)) cout << 1;
        else cout << 0;
    }
    cout << endl;
    return 0;
}

 

转载于:https://www.cnblogs.com/widsom/p/9527998.html

相关文章:

  • 中央政府释放重大利好 2015年信息消费将超3万亿
  • 在vue中使用SockJS实现webSocket通信
  • 虚度的日子们
  • Service 保活法之一
  • 新手学习SQL 注入式***
  • ajax取到数据后如何拿到data.data中的属性值
  • python中的魔术属性与魔法方法
  • 转:Android HttpClient基本使用方法
  • Uber开源其大规模指标平台M3
  • Java面试004-框架篇
  • Linux下调试工具
  • npm和node的版本过低时的解决办法
  • Java Specification Requests(JSR,JAVA规范请求)
  • 多版本并发控制MVCC
  • ios中timer相关的延时调用需要注意的地方
  • AWS实战 - 利用IAM对S3做访问控制
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • SSH 免密登录
  • Terraform入门 - 3. 变更基础设施
  • 动态规划入门(以爬楼梯为例)
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 浅谈web中前端模板引擎的使用
  • 时间复杂度与空间复杂度分析
  • 数组的操作
  • 一个完整Java Web项目背后的密码
  • 【干货分享】dos命令大全
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (a /b)*c的值
  • (LeetCode C++)盛最多水的容器
  • (rabbitmq的高级特性)消息可靠性
  • (六)c52学习之旅-独立按键
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (原)本想说脏话,奈何已放下
  • (转)Oracle存储过程编写经验和优化措施
  • .bat批处理(一):@echo off
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .net操作Excel出错解决
  • .net网站发布-允许更新此预编译站点
  • .net中的Queue和Stack
  • @angular/cli项目构建--Dynamic.Form
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • [2015][note]基于薄向列液晶层的可调谐THz fishnet超材料快速开关——
  • [ASP.NET 控件实作 Day7] 设定工具箱的控件图标
  • [BT]小迪安全2023学习笔记(第15天:PHP开发-登录验证)
  • [codeforces]Checkpoints
  • [GN] DP学习笔记板子
  • [IE编程] 打开/关闭IE8的光标浏览模式(Caret Browsing)
  • [IE技巧] 如何关闭Windows Server版IE的安全限制
  • [NSSRound#16 Basic]RCE但是没有完全RCE
  • [Oh My C++ Diary]\t \n \r的用法
  • [Qt桌面开发]一个Qt简单界面的开发
  • [Qualcomm][GPIO]高通芯片引脚相关知识记录