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

Codeforces Round 973 (Div. 2) C. Password Cracking

题目链接:题目

大意:

猜一串二进制密码,每次可询问某串字符是否是密码的子串。

思路:

从左到右不断构建ans字符串,每次不是加 1 1 1就是加 0 0 0,这可以通过询问得到。如果末尾既不能加 1 1 1又不能加 0 0 0,说明已经构建到了最右边,那么开始向左边构建。(写这题的时候一直不对,后来发现是忘记cin >> t了,归根结底还是不熟悉交互式编程的输入输出方式)

代码:

#include <bits/stdc++.h>
using namespace std;

#define int long long
#define MOD 1000000007
#define fi first
#define se second
#define pii pair<int,int>
#define vec vector

int query(string s){
    cout << "? " << s << endl;
    cout.flush();
    int res;
    cin >> res;
    return res;
}

void solve(){
    int n;
    cin >> n;
    string ans = "";
    bool turn = false;
    while(ans.size() < n){
        if(turn){
            if(query("1" + ans) == 1){
                ans = "1" + ans;
            }else{
                ans = "0" + ans;
            }
            continue;
        }
        if(query(ans + "1") == 1){
            ans = ans + "1";
        }else{
            if(query(ans + "0") == 1){
                ans = ans + "0";
            }else{
                turn = true;
            }
        }
    }
    cout << "! " << ans << '\n';
    cout.flush();
}

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int t=1;
    cin >> t;
    while(t--){
        solve();
    }
    return 0;
}   

http://www.kler.cn/a/319601.html

相关文章:

  • Redis - 集群(Cluster)
  • STM32 GPIO 配置
  • Python标准库模块的使用:math、datetime
  • 工业相机选取
  • c#使用COM接口设置excel单元格宽高匹配图片,如何计算?
  • GEE 数据集——美国gNATSGO(网格化国家土壤调查地理数据库)完整覆盖了美国所有地区和岛屿领土的最佳可用土壤信息
  • 抓取股票数据
  • 28岁打算转行靠谱么,这个年龄转行,有什么适合的行业么?
  • opencv滤波算法总结
  • Linux挂载命令
  • Docker 的安装部署与基本使用
  • Apache CVE-2021-41773 漏洞攻略
  • What is the new in C#11?
  • 验收测试:从需求到交付的全程把控!
  • BERT训练环节(代码实现)
  • 通过docker启动ElasticSearch后为ElasticSearch设置用户和密码
  • 分享课程:VUE数据可视化教程
  • vant_UI的选择时间小组件封装
  • excel VBA进行间比法设计
  • 运行python程序
  • 初识前端监控
  • C++如何进阶? -- 整理一些学习资料
  • 基于stm32物联网身体健康检测系统
  • LeetCode 909. 蛇梯棋
  • nlohmann json:读写json文件
  • c++优先级队列自定义排序实现方式