news 2026/6/12 18:36:53

UVa 468 Key to Success

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
UVa 468 Key to Success

题目描述

题目要求根据频率分析解码一段密文。已知明文字符串和密文字符串来自同一个人,且该人使用字母的相对频率在不同文本中保持一致。因此,明文中出现频率最高的字母对应于密文中出现频率最高的字母,第二高频的对应于第二高频的,依此类推。区分大小写。需要输出解码后的密文。

输入格式

第一行一个整数NNN,表示测试用例的数量,后面跟一个空行。每个测试用例包含两行:第一行为明文(未编码的文本),第二行为密文(编码后的文本)。两个连续测试用例之间由一个空行分隔。

输出格式

对于每个测试用例,输出一行解码后的密文。两个连续测试用例的输出之间由一个空行分隔。

样例

输入

1 abacxbacac qqqqqrrrssstt

输出

aaaaacccccbbxx

题目分析

本题的核心是根据字母频率统计进行映射,然后解码。

频率统计

  • 统计明文中每个字母(包括大小写)出现的次数。
  • 统计密文中每个字母出现的次数。
  • 分别按频率降序排序,得到两个有序列表。

映射建立

由于频率最高的字母相互对应,第二高的相互对应,依此类推,可以建立从密文字母到明文字母的映射。如果密文中的字母数量少于明文中的字母数量(即某些明文字母未在密文出现),则这些字母不需要映射。

解码

遍历密文字符串中的每个字符:

  • 如果是字母,则替换为映射后的字母。
  • 否则(非字母字符),保持不变。

特殊情况

  • 明文中可能出现密文中没有的字母,这些字母在解码时不会出现。
  • 如果多个字母出现频率相同,题目假设“没有两个字母使用频率相同”,因此排序结果唯一。

复杂度分析

统计频率O(L)O(L)O(L),排序O(26log⁡26)O(26 \log 26)O(26log26),完全可接受。

代码实现

// Key to Success// UVa ID: 468// Verdict: Accepted// Submission Date: 2016-07-29// UVa Run Time: 0.000s//// 版权所有(C)2016,邱秋。metaphysis # yeah dot net#include<bits/stdc++.h>usingnamespacestd;structitem{charletter;intfrequency;booloperator<(constitem&another)const{if(frequency!=another.frequency)returnfrequency>another.frequency;elsereturnletter<another.letter;}};intmain(intargc,char*argv[]){cin.tie(0);cout.tie(0);ios::sync_with_stdio(false);string line;getline(cin,line);intcases=stoi(line);for(inti=1;i<=cases;i++){if(i>1)cout<<'\n';getline(cin,line);string plain_line,encoded_line;map<char,int>plain,encoded;getline(cin,plain_line);for(intj=0;j<plain_line.length();j++)if(isalpha(plain_line[j]))plain[plain_line[j]]++;getline(cin,encoded_line);for(intj=0;j<encoded_line.length();j++)if(isalpha(encoded_line[j]))encoded[encoded_line[j]]++;vector<item>text1,text2;for(autop:plain)text1.push_back((item){p.first,p.second});for(autop:encoded)text2.push_back((item){p.first,p.second});sort(text1.begin(),text1.end());sort(text2.begin(),text2.end());map<char,char>code;for(intj=0;j<text1.size();j++)code[text2[j].letter]=text1[j].letter;for(autoc:encoded_line)if(isalpha(c))cout<<code[c];elsecout<<c;cout<<'\n';}return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/12 18:33:05

【桌面自动化助手】 OpenClaw v2.7.9 完整搭建教程(含安装包)

告别手动配环境&#xff01;OpenClaw Windows 一键部署全流程&#xff0c;3 分钟安装上手指南 在 2026 年开源 AI 工具爆发的浪潮中&#xff0c;OpenClaw&#xff08;昵称小龙虾&#xff09;凭借「本地运行 自动化操控」的独特优势&#xff0c;迅速成为办公族和程序员的必备效…

作者头像 李华
网站建设 2026/6/12 18:33:03

Windows 快速部署 OpenClaw,本地 AI 智能体完整搭建教程(含安装包)

Windows 一键部署 OpenClaw&#xff5c;5 分钟搭建本地 AI 智能体&#xff0c;简化配置流程 OpenClaw 也被网友称作小龙虾&#xff0c;是当下热门的开源 AI 项目。它并非单纯的对话类 AI&#xff0c;而是一款可以自主操控电脑的自动化工具。它能够识别自然语言指令&#xff0c…

作者头像 李华
网站建设 2026/6/12 18:32:21

计算机毕业设计之hadoop的租房数据分析系统

基于Hadoop的租房数据分析系统是一个利用大数据技术对租房市场进行深入挖掘和分析的平台。随着我国城市化进程的加快&#xff0c;租房市场日益繁荣&#xff0c;大量的租房信息充斥着市场&#xff0c;房东、租客和房产中介都面临着如何快速、准确地获取和利用这些信息的问题。为…

作者头像 李华
网站建设 2026/6/12 18:31:06

你的SSD怕断电吗?聊聊FTL映射表那些‘坑’与消费级/企业级的差异

SSD断电危机&#xff1a;FTL映射表背后的数据安全真相电脑突然蓝屏、插座意外断电、笔记本电池耗尽——这些日常小意外可能正悄悄威胁着你SSD里的重要数据。不同于机械硬盘的"皮实耐造"&#xff0c;固态硬盘在异常断电面前显得尤为脆弱&#xff0c;轻则开机变慢&…

作者头像 李华