首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

USACO例题源代码

2013-04-09 
USACO题解源代码package Karl.Water/*LANG: JAVATASK: transform*/import java.io.BufferedReaderimport

USACO题解源代码

package Karl.Water;/*LANG: JAVATASK: transform*/import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;public class transform {public static void Reflection(char[][] a,int n){char k;int i,j;for(j=0;j<n;j++){for(i=0;i<n/2;i++){k = a[j][i];a[j][i] = a[j][n-1-i];a[j][n-1-i] = k;}}}public static void rotate(char a[][],int N){    int layer;    for(layer=0; layer<N/2; layer++)    {        int first = layer;                      int last = N-1-layer;                       int i;        for(i=layer; i<last; i++)        {                int offset = i-layer;                char top = a[first][i];                a[first][i] = a[last-offset][first];                a[last-offset][first] = a[last][last-offset];                a[last][last-offset] = a[i][last];                a[i][last] = top;        }    }}public static boolean judge(char[][] a,char[][] b,int n){for(int i=0;i<n;i++){for(int j=0;j<n;j++){if(a[i][j]!=b[i][j]){return false;}}}return true;}public static void main(String[] args) throws NumberFormatException, IOException {BufferedReader br = new BufferedReader(new FileReader("transform.in"));PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("transform.out")));char[][] a = new char[1000][1000];char[][] b = new char[1000][1000];char[][] c = new char[1000][1000];int n = Integer.parseInt(br.readLine());String s = new String();int i,j,k=0;for(i=0;i<n;i++){s = br.readLine();for(j=0;j<n;j++){a[i][j] = s.charAt(j);c[i][j] = s.charAt(j);}}for(i=0;i<n;i++){s = br.readLine();for(j=0;j<n;j++){b[i][j] = s.charAt(j);}}for(int p=0;p<4;p++){transform.rotate(a, n);if(transform.judge(a, b, n)){k++;if(p==3) out.println(6);else{out.println(p+1);break;}}}if(k<1){transform.Reflection(a, n);if(transform.judge(a, b, n)){k++;out.println(4);}}if(k!=1&&k!=2){for(int p=0;p<3;p++){transform.rotate(a, n);if(transform.judge(a, b, n)){k++;out.println(5);}}}if(k==0){out.println(7);}out.close();System.exit(0);}}


热点排行