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

消失的密文

题目

代码

#include<bits/stdc++.h>
#define ll long long
using namespace std;
string s1,s2;
int t,n;
ll has1[100005],has2[100005],pw[100005]={1};
ll geth(int l,int r){
    return has1[r]-has1[l-1]*pw[r-l+1];
}
int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    for(int i=1;i<=100000;i++){
        pw[i]=pw[i-1]*26;
    }
    cin>>t;
    while(t--){
        map<char,char> mp;
        cin>>s1>>s2;
        for(int i=0;i<26;i++){
            mp[s1[i]]='a'+i;
        }
        n=s2.size();
        for(int i=1;i<=n;i++){
            has1[i]=has1[i-1]*26+s2[i-1];
            has2[i]=has2[i-1]*26+mp[s2[i-1]];
        }
        int anss=0;
        for(int k=(n+1)/2;k<=n;k++){
            if(has2[n-k]==geth(k+1,n)){
                anss=k;
                break;
            }
        }
        for(int i=0;i<anss;i++){
            cout<<s2[i];
        }
        for(int i=0;i<anss;i++){
            cout<<mp[s2[i]];
        }
        cout<<"\n";
    }
	return 0;
}

相关文章:

  • 消息队列,阻塞队列的实现
  • 免训练指标(Zero-Cost Proxies)
  • JavaScript字符串处理
  • Spring 编程式事务管理实现
  • Redis 服务器:核心功能与优化实践
  • 深入解析Java面向对象三大特征之多态、final、抽象类与接口
  • 【芯片验证】面试题·对深度为60的数组进行复杂约束的技巧
  • DeepSeek-R1学习
  • AD绘图基本操作
  • 面试系列|蚂蚁金服技术面【3】
  • Hessian 矩阵是什么
  • C++ STL 之常用拷贝和替换算法①copy();②replace();③replace_if();④swap();
  • 【操作系统】Ch5 存储管理
  • 行为模式---访问者模式
  • 实战:自适应均衡的设计与实现
  • SOC与电压的关系
  • 谈谈你对前端工程化的理解,它包含哪些方面
  • Linux目录理解
  • MySQL-基础篇
  • docker 安装mysql
  • 国新办将就2025年4月份国民经济运行情况举行新闻发布会
  • A股三大股指涨跌互现:银行股领涨,两市成交12915亿元
  • 时隔近4年再出征!长三丙成功发射通信技术试验卫星十九号
  • 警方通报:某博主遭勒索后自杀系自导自演,已立案调查
  • 央行等印发《关于金融支持广州南沙深化面向世界的粤港澳全面合作的意见》
  • 中国一直忽视欧盟经贸问题关切?外交部:事实证明中欧相互成就,共同发展