首页 > 其他分享 >周报素材

周报素材

时间:2023-09-12 21:23:00浏览次数:32  
标签:int 询问 二进制 素材 字符串 位为 字母 周报

H. Hardcore Hangman

题意:

有一个隐藏字符串,只允许提问6次,
每次提问可问多个字母,
若隐藏字符串中出现了所提问的字母,则返回所在下标,
编写程序输出隐藏字符串

分析

把26个字母映射成0-25,则可用二进制唯一表示出来,
因为2的5次方>26,所以5位二进制数即可表示一个字母。

则隐藏字符串每一个字母都用5位二进制表示

已知二进制数只有01两种情况

5次机会,每次询问一个位

如:第一次询问最高位为1的有哪些位置,将这些位置的最高位设为1,其他位置设为0
第二次询问次高位为1的有哪些位置,将这些位置的次高位设为1,其他位置设为0

则5次后,隐藏字符串的每个位置都得到了一个二进制数,将其转化为十进制数再转化为字母

现在考虑询问方式:
询问最高位为1,等价于询问二进制数最高位为1的字母,
最高位为1的数是16-32,则我们询问字母包括:p(16)及p之后的所有字母

using namespace std;
#define ll long long
//#define endl '\n'
const int N=1e5+10;
#define inf 0x3f3f3f3f3f3f3f3f
/*
int read(){
    int f=1,x=0;char c=getchar();
    while(!isdigit(c)){if(c=='-')f=-1;c=getchar();}
    while(isdigit(c)){x=x*10+c-'0';c=getchar();}
    return x*f;
}
*/

void solve(){
    cout<<"? ";
    for(char i='a';i<='z';i++)cout<<i;
    cout<<endl;
    int n;cin>>n;
    for(int i=1,x;i<=n;i++)cin>>x;
    vector<int> a(n+1);
    for(int i=0,t;i<5;i++){
        cout<<"? ";
        for(int j=0;j<26;j++){
            if(j&(1<<i))cout<<(char)('a'+j);
        }
        cout<<endl;
        cin>>t;
        for(int j=1,x;j<=t;j++){
            cin>>x;a[x]|=(1<<i);
        }
    }
    cout<<"! ";
    for(int i=1;i<=n;i++){
        cout<<(char)('a'+a[i]);
    }
    cout<<endl;
}
int main(){
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int t=1;
    //cin>>t;
    while(t--){
        solve();
    }
    return 0;
}

标签:int,询问,二进制,素材,字符串,位为,字母,周报
From: https://www.cnblogs.com/wwww-/p/17697377.html

相关文章

  • Databend 开源周报第 110 期
    Databend是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn。What'sOnInDatabend探索Databend本周新进展,遇到更贴近你心意的Databend。使用BendSQL管理Stage中的文件Databend推荐使用P......
  • 网安周报|Chaes恶意软件的新Python变种针对银行和物流行业
    1、Chaes恶意软件的新Python变种针对银行和物流行业银行和物流业正受到名为Chaes的恶意软件的重新设计变种的冲击。Chaes于2020年首次出现,它的目标是拉丁美洲(尤其是巴西)的电子商务客户,以窃取敏感的财务信息。该恶意软件的最新迭代版本被称为Chae$4(参考源代码中的调试日志信息),其中......
  • 周报_第一周
    学习时间:2023.8.30-2023.9.6一、完成内容1.看完了苏老师发的MotionPredictionusingTrajectoryCues这篇论文,以及上周开会的时候看的PPT,做了一些笔记。2.代码运行成功,但是还在看具体的实现细节。二、遇到的问题1.文章中提到的语义邻接矩阵Ap矩阵是依据什么进行编码的?2.文......
  • Databend 开源周报第 109 期
    Databend是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn。What'sOnInDatabend探索Databend本周新进展,遇到更贴近你心意的Databend。利用ClusterKey优化查询性能通过定义ClusterKey,可......
  • 第十七周_周报
    学习时间:2023.8.28-2023.9.3一、完成内容1.完成了数据云图的拼接和实现了一下项目内的图表部分。2.看了一下苏老师给我发的他写的会议文章,了解一下研究方向。二、下周计划1.阅读苏老师发的扩散模型的论文。......
  • KubeSphere 社区双周报 | KubeKey 新增网络插件 Hybridnet | 2023.08.18-08.31
    KubeSphere社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过commit的贡献者,并对近期重要的PR进行解析,同时还包含了线上/线下活动和布道推广等一系列社区动态。本次双周报涵盖时间为:2023.08.18-2023.08.31。贡献者名单新晋KubeSphereCon......
  • Databend 开源周报第 108 期
    Databend是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn。What'sOnInDatabend探索Databend本周新进展,遇到更贴近你心意的Databend。多源数据目录在Databend中,Catalog是数据组织的最高......
  • Databend 开源周报第 108 期
    Databend是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn。What'sOnInDatabend探索Databend本周新进展,遇到更贴近你心意的Databend。多源数据目录在Databend中,Catalog是数据组织的最高......
  • Databend 开源周报第 107 期
    Databend是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn。What'sOnInDatabend探索Databend本周新进展,遇到更贴近你心意的Databend。理解连接参数连接参数是建立与Databend支持的外部......
  • 8.14-8.19每周报告
    这周一直再弄那个物联网的比赛,我们得了个二等奖,去北京工业大学张了张见识,好的大学里面的条件跟我们真的不一样,他们所接触的东西,比我们更深更广,我们还得好好努力努力,争取下次参赛的时候拿一个一等奖,这周的学习几乎算是没有吧,不过好在解决了hbase的问题,原因是因为hadoop的安全模式打......