Board logo

標題: APCS 實作題 10503 - 2 [打印本頁]

作者: ray    時間: 2019-12-21 18:14     標題: APCS 實作題 10503 - 2

https://zerojudge.tw/ShowProblem?problemid=b965
作者: 陳思惟    時間: 2019-12-28 18:27

  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.io.OutputStreamWriter;
  5. import java.io.PrintWriter;
  6. import java.io.StreamTokenizer;

  7. public class B965 {
  8.         public static void main(String[] args) {
  9.                 StreamTokenizer cin = new StreamTokenizer(new BufferedReader(
  10.                                 new InputStreamReader(System.in)));
  11.                 PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
  12.                 try {
  13.                         while (cin.nextToken() != StreamTokenizer.TT_EOF) {
  14.                                 // input
  15.                                 int r = (int) cin.nval;
  16.                                 cin.nextToken();
  17.                                 int c = (int) cin.nval;
  18.                                 cin.nextToken();
  19.                                 int m = (int) cin.nval;
  20.                                 int method[] = new int[m];
  21.                                 int initArr[][] = new int[r][c];
  22.                                 int nowArr[][] = new int[r][c];
  23.                                 for (int i = 0; i < r; i++) {
  24.                                         for (int j = 0; j < c; j++) {
  25.                                                 cin.nextToken();
  26.                                                 initArr[i][j] = (int) cin.nval;
  27.                                         }
  28.                                 }
  29.                                 for (int i = 0; i < m; i++) {
  30.                                         cin.nextToken();
  31.                                         method[i] = (int) cin.nval;
  32.                                 }
  33.                                 // do
  34.                                 nowArr = initArr;
  35.                                 for (int i = m - 1; i >= 0; i--) {
  36.                                         if (method[i] == 0) { // 旋
  37.                                                 nowArr = spin(nowArr);
  38.                                         } else { // 翻
  39.                                                 nowArr = flip(nowArr);
  40.                                         }
  41.                                 }

  42.                                 for (int i = 0; i < nowArr.length; i++) {
  43.                                         for (int j = 0; j < nowArr[0].length; j++)
  44.                                                 out.print(nowArr[i][j]+" ");
  45.                                         out.println("");
  46.                                 }
  47.                                 out.flush();
  48.                         }
  49.                 } catch (IOException e) {
  50.                         // TODO 自動產生的 catch 區塊
  51.                         e.printStackTrace();
  52.                 }
  53.         }

  54.         static int[][] spin(int[][] in) { // 旋轉
  55.                 int[][] tmp = new int[in[0].length][in.length];
  56.                 for (int k = 0; k < in[0].length; k++) {
  57.                         for (int n = 0; n < in.length; n++) {
  58.                                 tmp[k][n] = in[n][in[0].length-k-1];
  59.                         }
  60.                 }
  61.                 return tmp;
  62.         }

  63.         static int[][] flip(int[][] in) { // 翻轉
  64.                 int[][] tmp = new int[in.length][in[0].length];

  65.                 for (int k = in.length - 1; k >= 0; k--) {
  66.                         for (int n = 0; n < in[0].length; n++)
  67.                                 tmp[k][n] = in[in.length - k - 1][n];
  68.                 }
  69.                 return tmp;
  70.         }
  71. }
複製代碼

作者: 李知易    時間: 2019-12-28 20:01

本帖最後由 李知易 於 2019-12-28 20:03 編輯
  1. import java.io.*;
  2. import java.util.*;


  3. public class B965 {
  4.         B965()
  5.         {
  6.                 StreamTokenizer cin = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
  7.                 PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
  8.                 try{
  9.                         while(cin.nextToken()!=StreamTokenizer.TT_EOF)
  10.                         {
  11.                                 int r = (int)cin.nval;
  12.                                 cin.nextToken();
  13.                                 int c = (int)cin.nval;
  14.                                 cin.nextToken();
  15.                                 int m = (int)cin.nval;
  16.                                 
  17.                                 int[][] b = new int[r][c];
  18.                                 
  19.                                 //r , c 行列數
  20.                                 for(int i = 0; i < r; i++)
  21.                                 {
  22.                                        
  23.                                         for(int j = 0; j < c; j++)
  24.                                         {
  25.                                                 cin.nextToken();
  26.                                                 b[i][j] = (int)cin.nval;
  27.                                         }
  28.                                 }
  29.                                 int[] mn = new int[m];
  30.                                 for(int i = 0 ; i < mn.length ; i++)
  31.                                 {
  32.                                         cin.nextToken();
  33.                                         mn[i] = (int)cin.nval;
  34.                                        
  35.                                 }
  36.                                 for(int x = m-1; x >= 0; x--)
  37.                                 {
  38.                                        
  39.                                         if(mn[x] == 0)
  40.                                         {
  41.                                                 int[][] re = new int[c][r];
  42.                                                
  43.                                                 for(int i = 0; i < c; i++)
  44.                                         {
  45.                                                 
  46.                                                 for(int j = 0; j < r; j++)
  47.                                                 {
  48.                                                        
  49.                                                         re[i][j] = b[j][c-1-i];
  50.                                                 }
  51.                                         }
  52.                                                 int t = r;
  53.                                             r = c;
  54.                                             c = t;
  55.                                                 b = re;
  56.                                         }
  57.                                         else if(mn[x] == 1)
  58.                                         {
  59.                                                 int[][] re = new int[r][c];
  60.                                         for(int i = 0; i < r; i++)
  61.                                         {
  62.                                                 
  63.                                                 for(int j = 0; j < c; j++)
  64.                                                 {
  65.                                                         re[i][j] = b[r-1-i][j];
  66.                                                 }
  67.                                         }
  68.                                         b = re;
  69.                                         }
  70.                                 }       
  71.                               
  72.                                 out.print(r+" "+c);
  73.                                 out.println();
  74.                                 for(int i = 0; i < r; i++)
  75.                                 {
  76.                                        
  77.                                         for(int j = 0; j < c; j++)
  78.                                         {
  79.                                                 if(j != 0)
  80.                                                         out.print(" ");
  81.                                                 out.print(b[i][j]);
  82.                                         }out.println();
  83.                                 }
  84.                                 out.println();
  85.                                 out.flush();
  86.                               
  87.                         }
  88.                 }catch(Exception e){}
  89.                
  90.                
  91.         }
  92.         public static void main(String[] args) {
  93.                 // TODO 自動產生的方法 Stub
  94.                 new B965();      
  95.                
  96.         }

  97. }
複製代碼

作者: 陳泓瑜    時間: 2019-12-28 20:02

  1. package com.brixpert.dab;

  2. import java.io.*;
  3. public class B965 {
  4.         B965()
  5.         {
  6.                 StreamTokenizer sti = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
  7.             PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));
  8.             try
  9.             {
  10.                     while(sti.nextToken() != StreamTokenizer.TT_EOF)
  11.                     {
  12.                             int h,w,f,tmp;
  13.                             h = (int)sti.nval;
  14.                             sti.nextToken();
  15.                             w = (int)sti.nval;
  16.                             sti.nextToken();
  17.                             f = (int)sti.nval;
  18.                             int n[][] = new int[h][w];
  19.                             int nf[] = new int[f];
  20.                             for(int i = 0; i < h; i++)
  21.                             {
  22.                                     for(int j = 0; j < w; j++)
  23.                                 {
  24.                                             sti.nextToken();
  25.                                         n[i][j] = (int)sti.nval;
  26.                                 }
  27.                             }
  28.                             for(int i = 0; i < f; i++)
  29.                             {
  30.                                         sti.nextToken();
  31.                                     nf[i] = (int)sti.nval;
  32.                             }
  33. //-------------------------------------------------------------------------------------------------
  34.                             for(int r = f-1; r >= 0; r--)
  35.                             {
  36.                                     if(nf[r] == 1)
  37.                                     {
  38.                                             //flip
  39.                                             int x[][] = new int[h][w];
  40.                                     for(int i = 0; i < h; i++)
  41.                                     {
  42.                                             for(int j = 0; j < w; j++)
  43.                                         {
  44.                                                     x[i][j] = n[h-1-i][j];
  45.                                         }
  46.                                     }
  47.                                     n = x;
  48.                                     }
  49.                                     else
  50.                                     {
  51.                                             //turn
  52.                                             int x[][] = new int[w][h];
  53.                                             for(int i = 0; i < w; i++)
  54.                                     {
  55.                                             for(int j = 0; j < h; j++)
  56.                                         {
  57.                                                     x[i][j] = n[j][w-1-i];
  58.                                         }
  59.                                     }
  60.                                     tmp = h;
  61.                                     h = w;
  62.                                     w = tmp;
  63.                                     n = x;
  64.                                     }                              
  65.                             }
  66.                             //output
  67.                             pw.print(h+" "+w+"\n");
  68.                             for(int i = 0; i < h; i++)
  69.                         {
  70.                                 for(int j = 0; j < w; j++)
  71.                             {
  72.                                         if(j != 0)
  73.                                                 pw.print(" ");
  74.                                         pw.print(n[i][j]);
  75.                             }
  76.                                 pw.println();
  77.                         }
  78.                         pw.flush();
  79.                     }
  80.             }catch(Exception exc)
  81.             {
  82.                     pw.print(exc.toString());
  83.                     pw.flush();
  84.             }
  85.         }
  86.         public static void main(String[] args) {
  87.                 // TODO 自動產生的方法 Stub
  88.         new B965();
  89.         }

  90. }
  91. /*
  92.   ____   ___    __ _____                                                                                          
  93. |  _ \ / _ \  / /| ____|                                                                                         
  94. | |_) | (_) |/ /_| |__                                                                                          
  95. |  _ < \__, | '_ \___ \                                                                                          
  96. | |_) |  / /| (_) |__) |                                                                                         
  97. |____/  /_/  \___/____/       ____  _____  ___   _______  ______ _____ _______ ______ ___  __ _  _               
  98. | |           |  __ \   /\   |  _ \|  __ \(_) \ / /  __ \|  ____|  __ \__   __|____  / _ \/_ | || |              
  99. | |__  _   _  | |  | | /  \  | |_) | |__) |_ \ V /| |__) | |__  | |__) | | |      / / | | || | || |_            
  100. | '_ \| | | | | |  | |/ /\ \ |  _ <|  _  /| | > < |  ___/|  __| |  _  /  | |     / /| | | || |__   _|            
  101. | |_) | |_| | | |__| / ____ \| |_) | | \ \| |/ . \| |    | |____| | \ \  | |    / / | |_| || |  | |              
  102. |_.__/ \__, | |_____/_/    \_\____/|_|  \_\_/_/ \_\_|    |______|_|  \_\ |_|   /_/   \___/ |_|  |_|              
  103.          __/ |                                                                                                   
  104.         |___/ ___   ___  __  ___  __ ___    ___   ___    __  ___    _____  ___   _______ __  __ _______    _____  
  105.        | |   |__ \ / _ \/_ |/ _ \/_ |__ \  |__ \ / _ \  /_ |/ _ \ _| ____|/ _ \ / / ____|  \/  |__   __|  / _ \ \
  106.    __ _| |_     ) | | | || | (_) || |  ) |    ) | (_) |  | | (_) (_) |__ | (_) | | |  __| \  / |  | |_| || (_) | |
  107.   / _` | __|   / /| | | || |\__, || | / /    / / > _ <   | |\__, | |___ \ > _ <| | | |_ | |\/| |  | |_   _> _ <| |
  108. | (_| | |_   / /_| |_| || |  / / | |/ /_ _ / /_| (_) |  | |  / / _ ___) | (_) | | |__| | |  | |  | | |_|| (_) | |
  109.   \__,_|\__| |____|\___/ |_| /_(_)|_|____(_)____|\___/   |_| /_/ (_)____/ \___/| |\_____|_|  |_|  |_|     \___/| |
  110.                                                                                 \_\                           /_/
  111.                                                                                                                   
  112. */
複製代碼

作者: 黃璽安    時間: 2019-12-28 20:07

  1. import java.io.*;
  2. import java.util.Arrays;
  3. public class B965{
  4.         B965()
  5.         {
  6.                
  7.                 StreamTokenizer cin = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
  8.                 PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
  9.                 try
  10.                 {
  11.                        
  12.                         while(cin.nextToken() != StreamTokenizer.TT_EOF)
  13.                         {
  14.                                
  15.                                 int R = (int)cin.nval;
  16.                                 cin.nextToken();
  17.                                 int C = (int)cin.nval;
  18.                                 cin.nextToken();
  19.                                 int M = (int)cin.nval;
  20.                                
  21.                                
  22.                                 int a[][] = new int [R][C];
  23.                                 int b[] = new int [M];
  24.                                
  25.                                 for(int i = 0; i<R; i++)
  26.                                         for(int j = 0; j<C; j++)
  27.                                         {
  28.                                                 cin.nextToken();
  29.                                                 a[i][j] = (int)cin.nval;
  30.                                         }
  31.                                 for(int i = 0; i<M; i++)
  32.                                 {
  33.                                         cin.nextToken();
  34.                                         b[i] = (int)cin.nval;
  35.        
  36.                                 }
  37.                                
  38.                                 for(int k = M-1; k>=0; k--)
  39.                                 {
  40.                                         if(k == 0)
  41.                                         {
  42.                                                 int d[][] = new int [C][R];
  43.                                                 for(int i = 0; i<C; i++)
  44.                                                         for(int j = 0; j<R; j++)
  45.                                                         {
  46.                                                                 d[i][j] = a[j][C-1-i];
  47.                                                         }
  48.                                                 a=d;
  49.                                                 int t=C;
  50.                                                         C=R;
  51.                                                         R=t;
  52.                                         }
  53.                                         else
  54.                                         {
  55.                                                 int c[][] = new int [R][C];
  56.                                                 for(int i = 0; i<R; i++)
  57.                                                         for(int j = 0; j<C; j++)
  58.                                                         {
  59.                                                                 c[i][j] = a[R-1-i][j];
  60.                                                                
  61.                                                         }
  62.                                                 a=c;
  63.                                         }
  64.                                 }
  65.                                
  66.                                 for(int i = 0; i<R; i++){
  67.                                         for(int j = 0; j<C; j++)
  68.                                         {
  69.                                                 if(j!=0)
  70.                                                 {
  71.                                                         out.print(" ");
  72.                                                 }
  73.                                                 out.print(a[i][j]);
  74.                                         }
  75.                                         out.println();
  76.                                 }
  77.                                
  78.                                 out.println();
  79.                                 out.flush();
  80.                         }
  81.                 }catch(Exception e)
  82.                 {
  83.                         out.println(e.toString());
  84.                         out.flush();
  85.                 }
  86.                
  87.         }
  88.         public static void main(String[] args)
  89.         {
  90.                 // TODO 自動產生的方法 Stub
  91.                 new B965();
  92.         }

  93. }
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2