SHAKE
来源:互联网 发布:python迭代器原理 编辑:程序博客网 时间:2024/05/01 21:53
import java.io.*;
class Test2
...{
public static void main(String[] args) throws Exception
...{
BufferedReader bf=new BufferedReader(new FileReader("shake.in"));
String str1,str2;
char a[][];
while(bf.ready())
...{
str1=bf.readLine();
str2=bf.readLine();
if(str1.charAt(0)=='0'&&str1.charAt(1)!='0')
...{
int m=Integer.parseInt((new Character(str1.charAt(1))).toString());
a=new char[m][m];
}
else if(str1.charAt(0)=='0'&&str1.charAt(1)=='0')
...{
a=new char[100][100];
}
else
...{
int m=Integer.parseInt(str1.substring(0,2));
System.out.println(m);
a=new char[m][m];
}
fill(a,str2);
for(int i=2;i<str1.length();i++)
go(str1.charAt(i),a);
for(int k=0;k<a.length;k++)
...{for(int j=0;j<a.length;j++)
System.out.print(a[k][j]);
}System.out.println();
}//end while
}//end main
public static void go(char c,char a[][])
...{
char tmp;
char tmp2;
switch(c)
...{
case 'R':
for(int i=0;i<a.length;i++)
if(i%2==0)
...{ int j;
tmp=a[i][a.length-1];
for( j=a.length-1;j>0;j--)
a[i][j]=a[i][j-1];
a[i][j]=tmp;
}
else ...{
int j;
tmp=a[i][0];
for(j=0;j<a.length-1;j++)
a[i][j]=a[i][j+1];
a[i][j]=tmp;
}
break;
case 'L':
for(int i=0;i<a.length/2;i++)
if(i%2==0)
...{ int j;
tmp2=a[i][a.length-1-i];
for( j=a.length-1-i;j>i;j--)
a[i][j]=a[i][j-1];
tmp=a[a.length-1-i][a.length-1-i];
for( j=a.length-1-i;j>i+1;j--)
a[j][a.length-i-1]=a[j-1][a.length-i-1];
a[j][a.length-i-1]=tmp2;
tmp2=a[a.length-i-1][i];
for( j=i;j<a.length-i-1-1;j++)
a[a.length-1-i][j]=a[a.length-1-i][j+1];
a[a.length-1-i][j]=tmp;
tmp=a[i][i];
for( j=i;j<a.length-i-1-1;j++)
a[j][i]=a[j+1][i];
a[j][i]=tmp2;
}
else
...{int j;
tmp=a[i][i];
for( j=i;j<a.length-i-1;j++)
a[i][j]=a[i][j+1];
a[i][j]=a[i+1][j];
tmp2=a[a.length-i-1][i];
for(j=a.length-i-1;j>i+1;j--)
a[j][i]=a[j-1][i];
a[j][i]=tmp;
tmp=a[a.length-i-1][a.length-i-1];
for(j=a.length-i-1;j>i+1;j--)
a[a.length-i-1][j]=a[a.length-i-1][j-1];
a[a.length-i-1][j]=tmp2;
for(j=i;j<a.length-i-1-1;j++)
a[j][a.length-i-1]=a[j+1][a.length-i-1];
a[j][a.length-i-1]=tmp;
}
break;
case 'S':
for(int j=0;j<a.length;j++)
if(j%2==0)
...{
int i;
tmp=a[0][j];
for( i=0;i<a.length-1;i++)
a[i][j]=a[i+1][j];
a[i][j]=tmp;
}
else
...{
int i;
tmp=a[a.length-1][j];
for(i=a.length-1;i>0;i--)
a[i][j]=a[i-1][j];
a[i][j]=tmp;
}
break;
}
}
public static void fill(char a[][],String str)
...{
int k=0;
int m=0;
String str1=str.toUpperCase();
for(int i=0;i<a.length;i++)
for(int j=0;j<a.length;j++)
...{
if(k<str.length())
a[i][j]=str1.charAt(k++);
else ...{
if(m>25)m=0;
a[i][j]=(char)(('A'+m++)%(((int)'Z'+1)));
}
}
}
}
Problem B: SHAKE
Input:shake.in output:standard
加密消息。
DESCRIPTION
Sam想要与Sally相互之间发送秘密消息,因此他们设计了一个简单但有效的加密机制,他们可以手工执行这样的加密。然而,他们很快就陷入了爱河,相互间的消息慢慢变得越来越大。因此,他们决定把加密机制用机器来执行。你的工作是写一个程序来实现他们的“shake,rattle,roll”加密机制。(解密不需在此时实现)。
一条明文消息放以行优先的顺序放在一个二维数组中,每个字符在数组一个独一无二的格子中。假如消息不能填满数组,那么空的格子就被从A到Z的大写字母填充(需要时可重复)。例如,消息“Meet me at the pizza parlor”在一个6╳6的二维数组中看起来如下图所示。注意所有字母都以大写字母保存。
为加密这条消息,”shake,rattle,roll”操作如下:
Shake:每奇数列的字母被向上轮换,方法是最上面的字母移到最下面,列中的其他字母都向上移动一个位置。偶数列的向下轮换:最下面的字母移到最上面,列中的其他字母向下移动一个位置。列按从左到右的顺序从1开始编号。例如:(上右图)
Rattle:奇数行的向右轮换一个字母,最右边的字母移到最左端,其他字母向右移动一个位置。偶数行的向左轮换一个字母,最左端的字母移到最右端,其他字母向左移动一个位置。例如:
Roll:每奇数“环”向右环绕移动一个字母,而偶数“环”则向右环绕移动一个字母,如下图所示。“环”按最右上角的行号的奇偶性分奇偶(右上角的行号为1)。
矩阵大小是加密密钥,可以在3x3到100x100之间改变,矩阵问题正方形。
INPUT:
输入文件可能包含多个加密问题。每个问题由两行组成。第一行是加密密钥,第二行是要加密的消息。加密密钥开始是两个表示矩阵大小的数字,后接一系列的'S', 'R', 或'L'。对每个’S’表示执行Shake操作,对’R’表示执行Rattle操作,对’L’表示执行roll操作。数字”00”表示100.
加密密钥至多80个字母,消息至多10,000个字符。假定消息问题可在指定的矩阵中装下。
Sample input
04RSRR
I love ice cream
06SRL
Meet me at the Pizza Parlor
OUTPUT:
每行输出加密后的密文。密文长度是矩阵大小的平方(例,一个3x3的矩阵产生长度的字符串密文)
Sample output
IREAELCIMVE OC
EIEEAGTTIMT E P ZHRZB PAORDAFLEA CMH
- shake
- SHAKE
- shake
- shake插补器
- Fair shake 一视同仁
- detect iphone shake
- ios中的shake
- poj 2317 SHAKE
- Shake Android UI Elements
- Camera Shake in Unity
- ios shake手势
- 2004-view-animation-shake
- JAVA连接Shake方法
- AccelerometerSensor--- shake案例
- Shake动画实现
- shake摇头效果
- POJ 2317 SHAKE 笔记
- Codeforces848D Shake It! -- DP
- MSSQL注入PUBLIC权限下的xp_dirtree再度利用
- Flipping colors
- SPIN
- 给年轻工程师的三个忠告——苹果传奇创办人沃兹尼克
- 对一个Spring依赖注入问题的解答
- SHAKE
- 我又回来了
- SQL中的with ties子句
- 鲜为人知的软件项目管理原则
- MAYA学习——NURBS建模1
- .NET环境下水晶报表使用总结 --[转]来自
- tom天气预报小偷
- 抓住女孩最易动情的21个瞬间
- 庆祝我的CSDN博客开张