HDU4144 Bacon's Cipher
来源:互联网 发布:矩阵运算公式 编辑:程序博客网 时间:2024/05/29 18:52
#include<stdio.h> #include<math.h> int main() { int n,i,c,k,a[10010]; char s[10010],ch[10010]; while(~scanf("%d",&n)) { scanf("%s",s); k=(n/5)-1; for(i=0;i<n;i++) { if(s[i]>=65&&s[i]<=90)s[i]='0'; else if(s[i]>=48&&s[i]<=57)s[i]='1'; } int m=0; int sum=0; for(i=n-1;i>=0;i--) { sum=sum+((s[i]-48)*pow(2,m)); m++; if(m==5){m=0;a[k]=sum;k--;sum=0;} } k=(n/5)-1; for(i=0;i<=k;i++) ch[i]='A'+a[i]; ch[k+1]='\0'; printf("%s\n",ch); } return 0; }
Bacon's Cipher
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 1321 Accepted Submission(s): 727
Problem Description
Bacon's cipher or the Baconian cipher is a method of steganography (a method of hiding a secret message as opposed to a true cipher) devised by Francis Bacon. A message is concealed in the presentation of text, rather than its content.
As we all know, each letter has its position in the alphabet, ‘A’ is 0, ‘B’ is 1, ‘C’ is 2…and so on. And each number can be represented in binary code, for example, 2 is ‘10’ in binary system. Then we expand the binary code to five digits by adding leading zeros, then 10 becomes 00010. Now we can use this number to encode. To simplify the question, we define the rules as below:
0 corresponds to a random uppercase letter and 1 corresponds to a random number, so after encoding, 00010 ( ‘C’ ) is transformed to ABC1D or JUG9N.
To decode, do the opposite way around.
As we all know, each letter has its position in the alphabet, ‘A’ is 0, ‘B’ is 1, ‘C’ is 2…and so on. And each number can be represented in binary code, for example, 2 is ‘10’ in binary system. Then we expand the binary code to five digits by adding leading zeros, then 10 becomes 00010. Now we can use this number to encode. To simplify the question, we define the rules as below:
0 corresponds to a random uppercase letter and 1 corresponds to a random number, so after encoding, 00010 ( ‘C’ ) is transformed to ABC1D or JUG9N.
To decode, do the opposite way around.
Input
The first line contains a positive number l, represents the length of the encoded string. L<=10000 and can be divided by 5. The second line is the encoded string.
Output
The original string.
Sample Input
35ON1E2H5Q39AK2TGIC9ERT39B2P423L8B20D
Sample Output
FLEENOW
Author
BNU
0 0
- HDU4144:Bacon's Cipher
- hdu4144 Bacon's Cipher
- HDU4144 Bacon's Cipher
- Bacon's Cipher hdu4144 水题
- 【字符串】hdu4144 Bacon's Cipher
- HDU 4144 Bacon's Cipher
- HDU 4144 Bacon's Cipher
- hdu 4144 Bacon's Cipher
- 17.04.29 Bacon's Cipher
- Ural 1590. Bacon’s Cipher 后缀数组
- HDU 4144Bacon's Cipher (解码)
- HDU菜鸟杯比赛第二题Bacon's Cipher
- 2011百校联动“菜鸟杯”程序设计公开赛&&Bacon's Cipher
- 1042 W's Cipher
- POJ_1107_W's Cipher
- hdu4144Bacon's Cipher
- POJ1107 W's Cipher
- ZOJ1042-W`s Cipher
- 程序员的编程、调试、排错小建议
- JMS规范及相关实现
- 1602液晶显示程序(C语言详细解说)
- Fix Some bytes have been replaced with the Unicode substitution character while loading file XXX.cs
- 移植MonkeyRunner的图片对比和获取子图功能的实现-Appium篇
- HDU4144 Bacon's Cipher
- 原創 無線網路細部設定之含義
- 【LeetCode】Remove Nth Node From End of List
- cocoapod卡在了analyzing dependencies
- #墙裂推荐Boost regex# C,C++11,Boost三种regex库性能比较
- Mac os host以及其他文件路径
- 编译器编译原理详细解析
- 《python for data analysis》笔记一 -- ipython简介
- Linux 系统中僵尸进程