狼群战术 | ||
Time Limit : 1000 MS | Memory Limit : 65536 KB | |
Description | ||
二战中德军潜艇使用狼群战术使得盟军的运输线遭受重大的损失。盟军截获了德军潜艇的通信电报,但电报显然是加了密的,经过盟军解密人员和情报人员的努力,终于解密了德军的密码,其编码方式如下:使用一个5*5的矩阵,纵和横坐标都依次为ABCDE,上面分别写有除V以外的25个字母,然后每个字母使用横纵坐标的字母表示,V使用FF表示。具体矩阵如下:
第一行是一个整数K,表示有多少个测试用例,以后每行一个测试用例。每个测试用例为一个字符串(最大长度不超过1000);字符串为大写英文和标点组成的。
每行输出一个测试用例的结果。请输出对应的明文。 | ||
Sample Input | ||
2 CAAEAECAEB ECADBCAEBCCBDACBDABCBE. ADACAEBBADED AEBD ECACCBAC,EBCABEAECABCED. | ||
Sample Output | ||
ATTACK BRITISH SHIP. RETURN TO BASE,CAPTAIN. 参考代码: #include<iostream> #include<stdio.h> using namespace std; char m[5][5]={'Q','W','E','R','T', 'Y','U','I','O','P', 'A','S','D','F','G', 'H','J','K','L','Z', 'X','C','B','N','M' }; char s[1000]; int main() { int ca; cin>>ca; gets(s); while(ca--) { gets(s); for(int i=0;s[i]!='\0';i++) { if(s[i]>='A'&&s[i]<='Z') { if(s[i]=='F'&&s[i+1]=='F') { cout<<'V'; i++; } else { char a; a=s[i+1]; cout<<m[int (s[i]-'A')][int (a-'A')]; i++; } } else cout<<s[i]; } cout<<endl; } return 0; } |
转载于:https://www.cnblogs.com/tufujie/p/4854250.html