Problem Description

After the 32nd ACM/ICPC regional contest, Wiskey is beginning to prepare for CET-6. He has an English words table and read it every morning.

One day, Wiskey’s chum wants to play a joke on him. He rolling the table, and tell Wiskey how many time he rotated. Rotate 90 degrees clockwise or count-clockwise each time.

The table has n*n grids. Your task is tell Wiskey the final status of the table.

Input

Each line will contain two number.

The first is postive integer n (0 < n <= 10).

The seconed is signed 32-bit integer m.

if m is postive, it represent rotate clockwise m times, else it represent rotate count-clockwise -m times.

Following n lines. Every line contain n characters.

Output

Output the n*n grids of the final status.

Sample Input

3 2

123

456

789

3 -1

123

456

789

Sample Output

987

654

321

369

258

147

(注意是字符啊!字符!我开始以为是n*n个1-n*n的数字。。。WA了几次)

输入n*n个字符,每次旋转以90°为单位,m>0表示顺时针旋转

m<0逆时针旋转。

矩阵旋转后存在四种状态。所以将m取余4,然后判断是哪种状态,然后旋转即可。

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();
int m = sc.nextInt();
String strs[]=new String[n];
for(int i=0;i<n;i++){
strs[i]=sc.next();
}
if(m%4==0){
for(int i=0;i<n;i++){
System.out.println(strs[i]);
}
continue;
}
if(m>0){
m=m%4;
if(m==1){
for(int i=0;i<n;i++){
for(int j=n-1;j>=0;j--){
System.out.print(strs[j].charAt(i));
}
System.out.println();
}
continue;
}
if(m==2){
for(int i=n-1;i>=0;i--){
for(int j=n-1;j>=0;j--){
System.out.print(strs[i].charAt(j));
}
System.out.println();
}
continue;
}
if(m==3){
for(int i=n-1;i>=0;i--){
for(int j=0;j<n;j++){
System.out.print(strs[j].charAt(i));
}
System.out.println();
}
continue;
}
}
if(m<0){
m=m*(-1);
m=m%4;
if(m==3){
for(int i=0;i<n;i++){
for(int j=n-1;j>=0;j--){
System.out.print(strs[j].charAt(i));
}
System.out.println();
}
continue;
}
if(m==2){
for(int i=n-1;i>=0;i--){
for(int j=n-1;j>=0;j--){
System.out.print(strs[i].charAt(j));
}
System.out.println();
}
continue;
}
if(m==1){
for(int i=n-1;i>=0;i--){
for(int j=0;j<n;j++){
System.out.print(strs[j].charAt(i));
}
System.out.println();
}
}
}
}
}
}

HDOJ(HDU) 2135 Rolling table的更多相关文章

  1. HDU 2135 Rolling table

    http://acm.hdu.edu.cn/showproblem.php?pid=2135 Problem Description After the 32nd ACM/ICPC regional ...

  2. HDOJ(HDU).1412 {A} + {B} (STL SET)

    HDOJ(HDU).1412 {A} + {B} (STL SET) 点我挑战题目 题意分析 大水题,会了set直接用set即可. 利用的是set的互异性(同一元素有且仅有一项). #include ...

  3. HDOJ(HDU).1754 I Hate It (ST 单点替换 区间最大值)

    HDOJ(HDU).1754 I Hate It (ST 单点替换 区间最大值) 点我挑战题目 题意分析 从题目中可以看出是大数据的输入,和大量询问.基本操作有: 1.Q(i,j)代表求区间max(a ...

  4. HDOJ(HDU).1166 敌兵布阵 (ST 单点更新 区间求和)

    HDOJ(HDU).1166 敌兵布阵 (ST 单点更新 区间求和) 点我挑战题目 题意分析 根据数据范围和询问次数的规模,应该不难看出是个数据结构题目,题目比较裸.题中包括以下命令: 1.Add(i ...

  5. HDOJ(HDU).2844 Coins (DP 多重背包+二进制优化)

    HDOJ(HDU).2844 Coins (DP 多重背包+二进制优化) 题意分析 先把每种硬币按照二进制拆分好,然后做01背包即可.需要注意的是本题只需要求解可以凑出几种金钱的价格,而不需要输出种数 ...

  6. HDOJ(HDU).1059 Dividing(DP 多重背包+二进制优化)

    HDOJ(HDU).1059 Dividing(DP 多重背包+二进制优化) 题意分析 给出一系列的石头的数量,然后问石头能否被平分成为价值相等的2份.首先可以确定的是如果石头的价值总和为奇数的话,那 ...

  7. HDOJ(HDU).2191. 悼念512汶川大地震遇难同胞――珍惜现在,感恩生活 (DP 多重背包+二进制优化)

    HDOJ(HDU).2191. 悼念512汶川大地震遇难同胞――珍惜现在,感恩生活 (DP 多重背包+二进制优化) 题意分析 首先C表示测试数据的组数,然后给出经费的金额和大米的种类.接着是每袋大米的 ...

  8. HDOJ(HDU).2159 FATE (DP 带个数限制的完全背包)

    HDOJ(HDU).2159 FATE (DP 带个数限制的完全背包) 题意分析 与普通的完全背包大同小异,区别就在于多了一个个数限制,那么在普通的完全背包的基础上,增加一维,表示个数.同时for循环 ...

  9. HDOJ(HDU).4508 湫湫系列故事――减肥记I (DP 完全背包)

    HDOJ(HDU).4508 湫湫系列故事――减肥记I (DP 完全背包) 题意分析 裸完全背包 代码总览 #include <iostream> #include <cstdio& ...

随机推荐

  1. web 页面传值方法

    一. 使用QueryString变量    QueryString是一种非常简单也是使用比较多的一种传值方式,但是它将传递的值显示在浏览器的地址栏中,如果是传递一个或多个安全性要求不高或是结构简单的数 ...

  2. <html:text> Id属性

    可能 会遇到这样 的问题,需要通过document.getElementById得到<html:text>标签的id, 可是据说ie设置property后id就是一样的了,不过具体没有去测 ...

  3. PHP替换数据库的换行符

    //php 有三种方法来解决 //1.使用str_replace 来替换换行 $str = str_replace(array("\r\n", "\r", &q ...

  4. 基于slf4j的log4j实战

    参考文档如下: http://blog.csdn.net/anialy/article/details/8529188 slf4j是接口,基于门面模式,可以实现log4j和logback 参考文档如下 ...

  5. NRPE: Unable to read output 问题处理总结

    自定义nagios监控命令check_disk_data,首先在nagios服务端command.cfg定义了#'check_disk_data' command definitiondefine c ...

  6. php文件粘贴上传

    <?php header("Access-Control-Allow-Origin:*"); $url = 'http://'.$_SERVER['HTTP_HOST']; ...

  7. Valid Phone Numbers

    Given a text file file.txt that contains list of phone numbers (one per line), write a one liner bas ...

  8. java 按天创建文件夹

    按天创建文件夹,也就是每天创建一个,适合上传文件服务使用,文件数量较多时可以按文件夹区分. public static final String FMT = "yyyy-MM-dd" ...

  9. 简述一个javascript简单继承工具的实现原理

    背景 由于本人非常希望能够开发自己的游戏,所以业余时间一直在想着能不能自己一些好玩又有趣的东西出来,最近随着steam上众多独立游戏的爆发,感觉自己又燃烧了起来,所以又拾起了很久以前的一个2d引擎,决 ...

  10. How do I solve the error: An error was encountered while running (Domain = LaunchServicesError, Code = 0) ?

    How do I solve the error: An error was encountered while running (Domain = LaunchServicesError, Code ...