专栏文章
【题解】CF2168A1 Encode and Decode (Easy Version)
CF2168A1题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @min6vw9r
- 此快照首次捕获于
- 2025/12/01 21:33 3 个月前
- 此快照最后确认于
- 2025/12/01 21:33 3 个月前
由于 Codeforces 启用了 Cloudflare 进行全站防护,导致洛谷 RemoteJudge 失效,所以请前往 CF 提交本题。
题目大意
本题是一道通信题,分为编码与解码两个独立阶段。
程序首先在编码阶段读取整数 n 和数组 a,并将其编码为一个仅由小写字母组成的字符串 s。
接着在解码阶段,读取之前输出的字符串 s,解码还原出原始的 n 和数组 a。
两个阶段由题目第一行所输入的
first 和 second 区分。特别地,这两个部分完全独立运行,彼此间不共享任何数据。
解题思路
我们发现这是一道 Easy Version(简易版)题目且 ,所以我们采用一种直接映射的方法,具体如下。
- 编码方式:将每个数字直接映射为对应的字母;
- 解码方式:将每个字母转换回对应的数字。
核心代码如下:
CPPstring en(int a[],int n)//编码
{
string s;
for(int i=0;i<n;i++)
s+='a'+a[i]-1;
return s;
}
int de(const string& s,int a[])//解码
{
int n=s.size();
for (int i=0;i<n;i++)
a[i]=s[i]-'a'+1;
return n;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...