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. 用了3年CAT,这次我想选择SkyWalking,老板反手就是一个赞!
  2. 高通驱动9008安装_赛多利斯Sartorius-ambr? 250 高通量灌注培养系统
  3. 《2022城市大脑建设标准研究报告》在京正式发布
  4. 程序基础:数据结构(郝斌讲解)(2)
  5. Java并发编程—如何取消定时任务
  6. powershell 启动线程与关闭线程
  7. 关于压缩工具 7z(7-zip) 的选项 -u(更新压缩档案中的文件)的解读
  8. SIM800C Couldn't pair with xxx because of an incorrect PIN or passkey
  9. Linux自动解压部署WEB项目脚本
  10. ML for trading -cs7646-03
  11. 计算冲突域和广播域的方法
  12. 代理ARP产生路由环路问题分析
  13. 使用video speed controller给视频加速
  14. 金蝶K3 SQL报表系列-委外未勾稽明细表金蝶K3 SQL报表系列-委外未勾稽明细表
  15. 前端学习笔记,加油!
  16. 知识问答之信息检索-1
  17. R 语言读写数据编码格式
  18. 清除WAS的僵死进程
  19. 【matplotlib】20.其他图
  20. 非专业老师上怎么计算机课,非计算机专业计算机基础教学研究

热门文章

  1. 安卓手游辅助分析与开发!五步搞定Android开发环境部署,深度好文
  2. 使用mono构建c#脚本运行环境
  3. php安全上传图片,PHP安全上传图片的方法
  4. [ERROR] [FATAL] InnoDB: Over 95 percent of the buffer pool is occupied by lock heaps or the adaptive
  5. Unity 抗锯齿方案梳理
  6. php 横屏和竖屏,面试问题,视频横屏与竖屏的设计差异?我是这样回答的
  7. 微信小程序云数据库增删改查
  8. 对抗攻击与防御 (2):对抗样本的反制策略
  9. 国内外常用的MD5在线解密网站
  10. UML图的各类符号解析