水的问题。直接附着到代码。

//poj 2041
//sep9
#include <iostream>
using namespace std;
char mode[128];
char ori[128],res[128];
int len;
void J()
{
ori[0]=res[len-1];
for(int i=1;i<len;++i)
ori[i]=res[i-1];
}
void C()
{
ori[len-1]=res[0];
for(int i=0;i<len-1;++i)
ori[i]=res[i+1];
}
void E()
{
int i;
for(i=0;i<len/2;++i)
ori[i]=res[i+(len+1)/2];
if(len%2==1)
ori[len/2]=res[len/2];
for(i=(len+1)/2;i<len;++i)
ori[i]=res[i-(len+1)/2];
}
void A()
{
for(int i=0;i<len;++i)
ori[i]=res[len-1-i];
}
void P()
{
for(int i=0;i<len;++i)
if(res[i]<='9'&&res[i]>='0')
ori[i]=res[i]=='0'? '9':res[i]-1;
else
ori[i]=res[i];
}
void M()
{
for(int i=0;i<len;++i)
if(res[i]<='9'&&res[i]>='0')
ori[i]=res[i]=='9'?'0':res[i]+1;
else
ori[i]=res[i];
}
int main()
{
int i,n;
scanf("%d",&n);
while(n--){
scanf("%s%s",mode,res);
len=strlen(res);
ori[len]='\0';
for(i=strlen(mode)-1;i>=0;--i){
if(mode[i]=='J')
J();
else if(mode[i]=='C')
C();
else if(mode[i]=='E')
E();
else if(mode[i]=='A')
A();
else if(mode[i]=='P')
P();
else if(mode[i]=='M')
M();
strcpy(res,ori);
}
printf("%s\n",res);
}
return 0;
}

最新文章

  1. android audio无法自动播放
  2. sql2005 全文索引
  3. Oracle 10G如何从recovery catalog中Unregister目标数据库
  4. 搭建Android手机系统开发环境(转)
  5. 【javascript】复制到剪贴板功能(支持目前各种浏览器)
  6. C#基础之方法参数
  7. 依赖注入(DI)和控制反转(IOC)
  8. 解决EditText不能撑满全屏的问题及EditText你应该知道的属性
  9. SQL Server 在Alwayson上使用内存表&quot;踩坑&quot;
  10. 201521123116 《java程序设计》第十四周学习总结
  11. R语言︱缺失值处理之多重插补——mice包
  12. 安卓开发笔记(十八):实现button按钮事件的三种方法
  13. iOS开发线程安全问题
  14. Angular4学习笔记(二)-在WebStorm中启动项目
  15. Haskell语言学习笔记(88)语言扩展(1)
  16. Android-Kotlin-抽象类与多态的表现
  17. Oracle EBS 物化视图
  18. [T-ARA][O My God]
  19. C语言:用指针求最大值和最小值
  20. 常用python包(依赖)Ubuntu下

热门文章

  1. passwd-shadow文件
  2. VS2010字体优化
  3. MySQL 聚簇索引
  4. Linux下添加磁盘创建lvm分区
  5. wordpress禁止调用官方Gravatar头像调用ssl头像链接提升加载速度
  6. 常用meta标签整理
  7. DataTables列过滤器
  8. MobileProject
  9. MySQL锁等待分析【2】
  10. 认识 web 服务器端脚本语言 PHP