Description

作为CSU宇宙军事学院的全A优等生,你不负众望。在你的精确计算和指挥控制下,MACROSS凭借其主炮的强大威力,成功挫败了Zentraedi舰队一次又一次的进攻。指挥室和甲板上传来一阵又一阵的欢呼声,战事也渐趋平静。但就在格罗巴尔将军叼起了他爱用的烟斗,准备下达全舰修整的命令之时,MACROSS的背后突然产生了强烈的时空跳跃反应,大批飞弹迅猛飞来。幸好此刻洛伊·福克正率领统合军Skull大队在返回MACROSS的途中,成功阻拦了大部分飞弹,但还是有部分流弹击穿了装甲,控制室里传来急促的警报声。

此刻你正检查情报系统受损情况并执行修复任务。很幸运,并没有飞弹击穿情报室的装甲,但情报系统仍然出现了严重的紊乱情况,尤其是航行日志已经面目全非。由于航行日志记载着MACROSS战舰及其船员在航行过程中的各项情况,是舰队指挥官决策的一个重要依据,因此需要你立刻修复。

MACROSS的航行日志由自然语言记录,严格符合英文排版规范,每一行文本的末尾不会出现多余的空格。虽然除了英文字母外还可能会存在着标点符号和空格,但标点仅仅只有","和"."两种情形。经过和部分备份日志比对,你惊喜地发现情况并不是十分糟糕。尽管整体上字符的替换毫无规律,但对于英文字母来说,仅仅是向后移动固定位数的循环替换。然而这……似乎并没有多大帮助……

正当一筹莫展之时,一份英文字母频率表在你的眼前调皮的摆动。耳边随即传来那熟悉的银铃般的声音:“嘻嘻~这下你该怎么感谢我呀!”。

“咦,怎么是你?!”

The letter-frequency table on MACROSS

Input

一份出现紊乱的航行日志文本。

Output

经过还原后的原始航行日志文本。

Sample Input

Xly`hld`mzcy`qcpp(`lyo`pgpcjhspcp`sp`td`ty`nsltyd}
Xlyj`l`zyp`mpwtpgpd`stxdpwq`esp`xldepc`zq`zespcd(
lyo`jpe`sp`td`l`rcplepc`dwlgp`esly`espj}
Szh`sld`estd`nslyrp`nzxp`lmzfe}`T`oz`yze`vyzh}
Hsle`nly`xlvp`te`wprtetxlep}`T`mpwtpgp`T`nly`dpeewp`estd`bfpdetzy}

Sample Output

Man was born free, and everywhere he is in chains.
Many a one believes himself the master of others,
and yet he is a greater slave than they.
How has this change come about. I do not know.
What can make it legitimate. I believe I can settle this question.

这题考到了两个点,第一个是字符串文本的读入,然后就是理解题意。思路:这题很简单,读入所有的字符之后找到出现频率最高的那个字母然后用e代替,其他的字母同样的向后移动固定位数的循环替换。

这题我在比赛的时候非常智障的用set去存储每一行的string,当时做的太着急了,然后忘了set会自动排序然后就导致乱码了。比赛结束换成queue就ac了。我个菜比。

附ac代码:

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <vector>
#include <sstream>
#include <set>
#include <queue>
using namespace std;
const int maxn = 1005;
string s;
int a[26];//a数组用来记录字母出现的个数,A和a视为同一个字母
int b[100005];//我觉得用字母还要区分大小写很麻烦,所以统一用数字0-25来代替字母A-Z与a—z,b数组就是来存储字符转化后的数字
queue<string>v;
char c3[100005];
char c1[26];//小写字母
char c2[26];//大写字母
int main()
{for (int i = 0; i<26; i++){c1[i] = 'a' + i;c2[i] = 'A' + i;}string buf;int cnt1 = 0;while (cin>>s){memset(a, 0, sizeof(a));int len = s.length();//cout<<len<<endl;for (int i = 0; i<len; i++)//将字符转换为数字,并记录个数{if (s[i] >= 'A'&&s[i] <= 'Z'){a[s[i] - 'A']++;b[cnt1++] = s[i] - 'A';}if (s[i] >= 'a'&&s[i] <= 'z'){a[s[i] - 'a']++;b[cnt1++] = s[i] - 'a';}}stringstream ss(s);//流用来读入文本while (ss >> buf){v.push(buf);}}//cout<<v.size()<<endl;int max1 = 0;int flag;for (int i = 0; i<26; i++){if (a[i]>max1){max1 = a[i];flag = i;}}int cnt;cnt = 30 - flag;//找到频率最大的字母,并得到该字母转化成e循环移动了几位,for (int i = 0; i<cnt1; i++){b[i] = (b[i] + cnt) % 26;}//cout<<cnt<<endl;int j = 0;while(!v.empty())//输出{string s1 = v.front();v.pop();//cout<<s1.length()<<endl;for (int i = 0; i<s1.length(); i++){if (s1[i] >= 'A'&&s1[i] <= 'Z'){cout << c2[b[j++]];}if (s1[i] >= 'a'&&s1[i] <= 'z'){cout << c1[b[j++]];}if (s1[i] == '`')cout << " ";if (s1[i] == '(')cout << ",";if (s1[i] == '}')cout << ".";}cout << endl;}cout << endl;return 0;
}

CSU2080: 航行日志的修复相关推荐

  1. 华为文稿演示服务器操作异常修复,服务器日志怎么修复

    服务器日志怎么修复 内容精选 换一换 在数据库在运行过程中,会涉及到锁的访问.磁盘IO操作.无效消息的处理,这些操作都可能是数据库的性能瓶颈,通过GaussDB(DWS)提供的性能统计方法,可以方便定 ...

  2. 达梦数据库redo日志损坏修复方法

    一.什么是redo日志?redo日志有什么用? redo日志即重做日志,重做日志是在DM数据库中添加.删除.修改对象,或者改变数据,DM都会按照特定的格式,将这些操作执行的结果写入到当前的重做日志文件 ...

  3. Istio 1.1.1 发布,修复漏洞并改进鲁棒性

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   Istio 1.1.1 发布了,此版本包括一些安全漏洞修复并改进了鲁棒性. 更新内容包括: 配置 Prometheus 以监控 Citade ...

  4. oracle重命名日志成员出错,Oracle日志文件

    一.一些oracle日志的常用命令 oracle的日志文件是记录数据库变化的一个凭证,就是oracle对于一切数据库的操作的记录方便以后查找分析错误.有可以恢复数据等作用.oracle的文件可以分为数 ...

  5. 修复漏洞的Istio 1.1.1 发布了

    Istio 1.1.1 发布了,此版本包括一些安全漏洞修复并改进了鲁棒性. 修复漏洞的Istio 1.1.1 发布了修复漏洞的Istio 1.1.1 发布了 更新内容包括: 配置 Prometheus ...

  6. android 组件消失了,Android 12 2.2 开发者预览版发布:修复桌面小组件消失等问题...

    IT 之家 4 月 8 日消息 据外媒 XDA 论坛消息,Android 12 2.2 开发者预览版今日发布,同时包含安卓 2021 年 4 月安全更新.本次预览版主要修复了一些错误,没有带来重要功能 ...

  7. fsck|xfs_repair 磁盘修复

    fsck 使用权限 : 超级使用者 使用方式 : fsck [-sACVRP] [-t fstype] [--] [fsck-options] filesys [...] 说明 : 在Linux系统中 ...

  8. Docker更新日志(截止到2020年9月10日)

    本文记录docker-ce从17.03到19.03更新日志情况,主要内容为更新版本所修复的问题和新增功能等.所有内容来自官方文档的更新日志,很多地方有翻译不准确情况,仅供简单参考. 官方版本记录日志: ...

  9. xfs文件系统修复方法

    首先尝试mount和umount文件系统,以便重放日志,修复文件系统,如果不行,再进行如下操作. 1.检查文件系统:先确保umount xfs_check /dev/sdd(盘符); echo $?  ...

  10. 修复android.phone软件,Jihosoft Android Phone Recovery

    Jihosoft Android Phone Recovery官方版是一款相当强劲和优异的Android数据恢复软件.Jihosoft Android Phone Recovery官方版具备直观的界面 ...

最新文章

  1. SpringMVC接收checkbox传值
  2. Python帮你识破双11的套路
  3. rsync 远程同步——安全高效的异地备份策略
  4. 手把手教Electron+vue的使用
  5. [scikit-learn 机器学习] 3. K-近邻算法分类和回归
  6. PyTorch的Tensor(张量)
  7. Mr.J -- yield关键字生成器产生值
  8. Linux查询命令man手册各章节解释
  9. VIIRS和DMSP夜间灯光数据(1992-2020)
  10. 时间序列模型ARIMA -- 唐宇迪
  11. 百度收录提交软件-百度批量收录提交入口工具免费
  12. 3-11 查询水果价格
  13. Camera2 YUV420_888
  14. 计算机学院云毕业,“云端”相约,逐梦起航——计算机与设计学院举办2020届线上毕业典礼...
  15. 一个程序员绝对真实的生活感悟
  16. 中国itunes ip 记录
  17. 面向高稳定,高性能之-Hbase数据实时同步到ElasticSearch(之二)
  18. java全文检索工具_TRS全文检索开发文档及API,工具包
  19. 云计算厂商迎来升级拐点,边缘计算布局或将成决胜点
  20. 欢迎加入微信交流群交流

热门文章

  1. 成都大数据培训前景:2020年大数据趋势
  2. MongoDB的安装和基础CRUD
  3. 数据分析师工资高达50万,正在进入每一个行业!
  4. 计算机组成原理mips汇编大作业报告(冒泡排序、选择排序)
  5. C语言——计算标准差公式
  6. python 读取png图片 透明度
  7. PNP与NPN三极管开关特性
  8. TCP攻击实战及其简略防御措施
  9. [小雨学编程之C#] 18.1 数据类型转换,数据类型别名
  10. Windows系统下输入法变为繁体字