zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 60 (Rated for Div. 2)E(思维,哈希,字符串,交互)

    #include <bits/stdc++.h>
    using namespace std;
    int main(){
     string t;
     cin>>t;
     int n=t.size();
     string s1(n,'a'),s2(n,'a'),s3(n,'a');
     for(int i=0;i<n;i++){
      s1[i]=char('a'+(i%26));//从a到z循环
      s2[i]=char('a'+((i/26)%26));//第i位为(i/26)%26+'a',保证了26*26内不会和s1相同
      s3[i]=char('a'+((i/26/26)%26));//保证了26^3内不会和s1相同,类似哈希编码
     }
     cout<<"? "<<s1<<endl;
     string t1;
     cin>>t1;
     cout<<"? "<<s2<<endl;
     string t2;
     cin>>t2;
     cout<<"? "<<s3<<endl;
     string t3;
     cin>>t3;
     vector<int>p(n);
     for(int i=0;i<n;i++)
      p[i]=(t1[i]-'a')+(t2[i]-'a')*26+(t3[i]-'a')*26*26;//将变化后的值根据编码还原
     string s(n,'a');
     for(int i=0;i<n;i++)
      s[p[i]]=t[i];//26^3>1000,所以可行
     cout<<"! "<<s<<endl;
     return 0;
    }

    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    自己总结的Java归并排序代码
    SpringDataJpa
    多态
    向上转型向下转型
    python面向对象装饰器
    Apache
    git
    μWSGI
    虚拟环境
    软件仓库(持续更新中)
  • 原文地址:https://www.cnblogs.com/ldudxy/p/10486913.html
Copyright © 2011-2022 走看看