本题的重点是理解清楚题意并能代码模拟。形式是二战德国密码机,和数据结构、算法联系较少。

 #include <stdio.h>
 #include <string.h>

 int main(){
     ],cryp[];
     ,num=,m,n,temp[],tran[][];
     &&m){
         if(blank)
             printf("\n");
         else
             blank=;
         printf("Enigma %d:\n",num++);
         ;i<;i++){
             scanf("%s",rotor);
             ;j<m;j++){
                 temp[j] = (int)(rotor[j]-'A')-j;
                 tran[i][(j+temp[j])%m]=temp[j];
             }
         }
         scanf("%d", &n);
         int lp0,lp1,lp2,t,len;
         ;i<n;i++){
             lp0=lp1=lp2=;
             scanf("%s",cryp);
             len=strlen(cryp);
             ; j < len; j++){
                 t = cryp[j] - 'A';
                 t -= tran[][(t + lp2) % m];
                 t = (t + m) % m;
                 t -= tran[][(t + lp1) % m];
                 t = (t + m) % m;
                 t -= tran[][(t + lp0) % m];
                 t = (t + m) % m;
                 printf("%c", t+'a');
                 lp0 = (lp0 + m - ) % m;
                 ) % m == )
                     lp1 = (lp1 + m - ) % m;
                 ) % (m*m) == )
                     lp2 = (lp2 + m - ) % m;
             }
             printf("\n");
         }
     }
     ;
 }

1009 Enigma的更多相关文章

  1. [ZOJ 1009] Enigma (模拟)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1009 题目大意:给你三个转换轮,只有当第一个转换轮转动一圈后第二 ...

  2. POJ题目细究

    acm之pku题目分类 对ACM有兴趣的同学们可以看看 DP:  1011   NTA                 简单题  1013   Great Equipment     简单题  102 ...

  3. 【转】POJ百道水题列表

    以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...

  4. HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序

    FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  5. 1009: [HNOI2008]GT考试

    1009: [HNOI2008]GT考试 Time Limit: 1 Sec Memory Limit: 162 MB Description 阿申准备报名参加GT考试,准考证号为N位数\(X_1X_ ...

  6. Qt程序打包(使用Enigma Virtual Box和BoxedApp Packer封包)

    一.使用单文件封包工具 单文件封包工具,顾名思义就是将可执行文件及其相关依赖打包成单个可执行文件的工具. 这里推荐两个单文件封包工具:Enigma Virtual Box和BoxedApp Packe ...

  7. [题解]hdu 1009 FatMouse' Trade(贪心基础题)

    Problem Description FatMouse prepared M pounds of cat food, ready to trade with the cats guarding th ...

  8. AC日记——产生数 codevs 1009 (弗洛伊德)(组合数学)

    1009 产生数 2002年NOIP全国联赛普及组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Descriptio ...

  9. 【BZOJ】【1009】 【HNOI2008】GT考试

    DP/KMP/矩阵乘法 好神的题啊……跪了跪了 $n\leq 10^9$是什么鬼……我们还是先不要考虑这个鬼畜的玩意了>_> 用类似数位DP的思路,我们可以想到一个DP方程:$f[i][j ...

随机推荐

  1. 最大子数组分治方案C++实现

    大家好,我是小鸭酱,博客地址为:http://www.cnblogs.com/xiaoyajiang 以下实现最大子数组的分治策略,算法来自<算法导论> #include<iostr ...

  2. CloudStack核心类ApiServlet、ApiServer、ApiDispatcher、GenericDaoBase源码分析

    ApiServlet 首先从整体上看下ApiServlet,Outline视图如下, 一.注意@Inject依赖的是javax.inject.jar,它和spring的@Autowired的区别在于使 ...

  3. Java中读取文件

    Java中读取文件,去除一些分隔符,保存在多维数组里面 public void readFile(String filePath) { File file=new File(filePath); Ar ...

  4. 安装Oracle10g on RedHat as 4 64bit(摘)

    一.安装前的配置 1.修改RH版本 vi /etc/redhat-release Red Hat Enterprise Linux AS release 3 (Taroon Update 3) 2. ...

  5. 编程是一项需要时间来掌握的技能(Anders的经验)

    Anders现在每天仍然花大量的时间实际写代码,并且未来会一直写下去.他很清醒的知道自己长处:“相比起管理,我还是更擅长于编程.” 事实上,Anders的成名之作Turbo Pascal通过出售软件授 ...

  6. 利用btrace工具监控在线运行java程序

     一.作用 可以用于对运行中java程序进行诊断监控分析,也可以用于开发阶段查看一些异常信息或者调用过程(如有些第三方代码没有源代码,不便于debug调试). 注:如果用于对在线运行系统的诊断,需 ...

  7. bzoj4546-codechef XRQRS(可持久化Trie)

    中文题题意我就不说了 解析: 可持久化Trie的模板题,详见注释 代码 #include<cstdio> #include<cstring> #include<strin ...

  8. POJ3261-哈希

    这个题让求至少出现K次的最大长度的子串,属于最大化最小值问题,首先应该想到二分求字串的长度,二分的过程是O(logN)的,注意judge的时候怎样判断是否满足情况以及满足情况后l,r的变化.可以给每一 ...

  9. <转载>C++命名空间

    原文http://blog.csdn.net/liufei_learning/article/details/5391334 一. 为什么需要命名空间(问题提出) 命名空间是ANSIC++引入的可以由 ...

  10. Hive 9、Hive 在表中添加正则匹配

    在Hive中还有一项比较好用的功能,也是非常重要的功能:在建表的时候可以不指定表的行.字段.列的分隔方式,通过给表指定一段正则表达式,让Hive自动去匹配: 1.创建表 CREATE TABLE ap ...