CSU2080: 航行日志的修复
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: 航行日志的修复相关推荐
- 华为文稿演示服务器操作异常修复,服务器日志怎么修复
服务器日志怎么修复 内容精选 换一换 在数据库在运行过程中,会涉及到锁的访问.磁盘IO操作.无效消息的处理,这些操作都可能是数据库的性能瓶颈,通过GaussDB(DWS)提供的性能统计方法,可以方便定 ...
- 达梦数据库redo日志损坏修复方法
一.什么是redo日志?redo日志有什么用? redo日志即重做日志,重做日志是在DM数据库中添加.删除.修改对象,或者改变数据,DM都会按照特定的格式,将这些操作执行的结果写入到当前的重做日志文件 ...
- Istio 1.1.1 发布,修复漏洞并改进鲁棒性
开发四年只会写业务代码,分布式高并发都不会还做程序员? Istio 1.1.1 发布了,此版本包括一些安全漏洞修复并改进了鲁棒性. 更新内容包括: 配置 Prometheus 以监控 Citade ...
- oracle重命名日志成员出错,Oracle日志文件
一.一些oracle日志的常用命令 oracle的日志文件是记录数据库变化的一个凭证,就是oracle对于一切数据库的操作的记录方便以后查找分析错误.有可以恢复数据等作用.oracle的文件可以分为数 ...
- 修复漏洞的Istio 1.1.1 发布了
Istio 1.1.1 发布了,此版本包括一些安全漏洞修复并改进了鲁棒性. 修复漏洞的Istio 1.1.1 发布了修复漏洞的Istio 1.1.1 发布了 更新内容包括: 配置 Prometheus ...
- android 组件消失了,Android 12 2.2 开发者预览版发布:修复桌面小组件消失等问题...
IT 之家 4 月 8 日消息 据外媒 XDA 论坛消息,Android 12 2.2 开发者预览版今日发布,同时包含安卓 2021 年 4 月安全更新.本次预览版主要修复了一些错误,没有带来重要功能 ...
- fsck|xfs_repair 磁盘修复
fsck 使用权限 : 超级使用者 使用方式 : fsck [-sACVRP] [-t fstype] [--] [fsck-options] filesys [...] 说明 : 在Linux系统中 ...
- Docker更新日志(截止到2020年9月10日)
本文记录docker-ce从17.03到19.03更新日志情况,主要内容为更新版本所修复的问题和新增功能等.所有内容来自官方文档的更新日志,很多地方有翻译不准确情况,仅供简单参考. 官方版本记录日志: ...
- xfs文件系统修复方法
首先尝试mount和umount文件系统,以便重放日志,修复文件系统,如果不行,再进行如下操作. 1.检查文件系统:先确保umount xfs_check /dev/sdd(盘符); echo $? ...
- 修复android.phone软件,Jihosoft Android Phone Recovery
Jihosoft Android Phone Recovery官方版是一款相当强劲和优异的Android数据恢复软件.Jihosoft Android Phone Recovery官方版具备直观的界面 ...
最新文章
- SpringMVC接收checkbox传值
- Python帮你识破双11的套路
- rsync 远程同步——安全高效的异地备份策略
- 手把手教Electron+vue的使用
- [scikit-learn 机器学习] 3. K-近邻算法分类和回归
- PyTorch的Tensor(张量)
- Mr.J -- yield关键字生成器产生值
- Linux查询命令man手册各章节解释
- VIIRS和DMSP夜间灯光数据(1992-2020)
- 时间序列模型ARIMA -- 唐宇迪
- 百度收录提交软件-百度批量收录提交入口工具免费
- 3-11 查询水果价格
- Camera2 YUV420_888
- 计算机学院云毕业,“云端”相约,逐梦起航——计算机与设计学院举办2020届线上毕业典礼...
- 一个程序员绝对真实的生活感悟
- 中国itunes ip 记录
- 面向高稳定,高性能之-Hbase数据实时同步到ElasticSearch(之二)
- java全文检索工具_TRS全文检索开发文档及API,工具包
- 云计算厂商迎来升级拐点,边缘计算布局或将成决胜点
- 欢迎加入微信交流群交流