【CSU-2184】解题报告(水题)

原始题目

2184: 解密简单版

  • Time Limit: 1 Sec
  • Memory Limit: 128 Mb
  • Submitted: 101
  • Solved: 39

Description

小F居住在铁道校区,他想和湘雅校区的同学小L聊天,为了保证沟通安全,他发明了一种加密方式,
这种加密方式是这样的:对于一个01串,小F会将其从左到右每8位分成一组,最后一组可能不足8位,
对每组进行逆序操作,即如果原来是$ b_{L}b_{L+1}b_{L+2}b_{R-1}b_{R} $,逆序之后变成 $ b_{R}b_{R-1}b_{R-2}b_{L-1}b_{L} $。
现在小F已经加密好了一个串,并且将其发给了小L,你能帮助小L得到这串密文对应的原始信息吗?

Input

单组数据。

一行一个 01 串,代表加密后的字符串,串长度大于0,小于等于 100。

Output

一行字符串,代表加密后的字符串所对应的原始信息。

Sample Input

100010110011101

Sample Output

110100011011100

Hint

Source

题目大意

如题

解题思路

模8反转输出

解题代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <string>
#include <sstream>
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+5;
const int maxm=1e5+5;
#define rep(i,a,n) for(int i=a;i<n;++i)
#define per(i,a,n) for(int i=n-1;i>=a;--i)



typedef long long ll;
typedef unsigned long long ull;
typedef vector<int> vi;
typedef pair<string,string> pss;


int main(){
ios::sync_with_stdio(false);

string ss;
while(cin>>ss){
int len= ss.length();
int t=len/8;
rep(i,0,t){
per(j,0,8){
cout<<ss[i*8+j];
}
}
for(int i=len-1;i>=t*8;i--) cout<<ss[i];
cout<<endl;
}

}

收获与反思

暂无