usaco-tranform:pass
2014-08-29 15:13
162 查看
这个题目是最简单的,虽然步数多了些,但它是最简单的,没怎么费脑力:
看下测试数据用例:
/* ID: qq104801 LANG: C++ TASK: transform */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <assert.h> /* for debug only:counter */ void debug_dummy(void) { return; } const int MAX=10; typedef struct _kk { char x[MAX][MAX]; }kk,*pkk; int n; kk a,b,t,t1,t2; void rotate(kk* src,kk* tar) { for(int i=0;i<n;i++) for(int j=0;j<n;j++) tar->x[i][j]=src->x[n-j-1][i]; } void rotate1() { rotate(&a,&t); } void rotate2() { rotate(&a,&t2); rotate(&t2,&t); } void rotate3() { rotate(&a,&t); rotate(&t,&t2); rotate(&t2,&t); } void mirror() { for(int i=0;i<n;i++) for(int j=0;j<n;j++) t.x[i][j]=a.x[i][n-1-j]; } int cmp(kk* src,kk* tar) { for(int i=0;i<n;i++) for(int j=0;j<n;j++) if (tar->x[i][j]!=src->x[i][j]) return 0; return 1; } int trans() { rotate1();if (cmp(&b,&t))return 1; rotate2();if (cmp(&b,&t))return 2; rotate3();if (cmp(&b,&t))return 3; mirror();if (cmp(&b,&t))return 4; rotate(&t,&t1);if(cmp(&b,&t1))return 5; rotate(&t1,&t);if(cmp(&b,&t))return 5; rotate(&t,&t1);if(cmp(&b,&t1))return 5; if (cmp(&a,&b))return 6; return 7; } void test() { printf("%d\n",n); printf("a:\n"); for(int i=0;i<n;i++) { for(int j=0;j<n;j++) printf("%c",a.x[i][j]); printf("\n"); } printf("b:\n"); for(int i=0;i<n;i++) { for(int j=0;j<n;j++) printf("%c",b.x[i][j]); printf("\n"); } printf("t:\n"); for(int i=0;i<n;i++) { for(int j=0;j<n;j++) printf("%c",t.x[i][j]); printf("\n"); } } main () { FILE *fin = fopen ("transform.in", "r"); FILE *fout = fopen ("transform.out", "w"); fscanf(fin,"%d",&n); assert(getc(fin)=='\n'); for(int i=0;i<n;i++){ for(int j=0;j<n;j++) a.x[i][j]=getc(fin); assert(getc(fin)=='\n'); } for(int i=0;i<n;i++){ for(int j=0;j<n;j++) b.x[i][j]=getc(fin); assert(getc(fin)=='\n'); } int b; b=trans(); fprintf(fout,"%d\n",b); //printf("%d\n\n",b); //test(); fclose(fin); fclose(fout); exit (0); }
看下测试数据用例:
ll tom [qq104801] TASK: transform LANG: C++ Compiling... Compile: OK Executing... Test 1: TEST OK [0.011 secs, 3520 KB] Test 2: TEST OK [0.003 secs, 3520 KB] Test 3: TEST OK [0.008 secs, 3520 KB] Test 4: TEST OK [0.014 secs, 3520 KB] Test 5: TEST OK [0.008 secs, 3520 KB] Test 6: TEST OK [0.016 secs, 3520 KB] Test 7: TEST OK [0.008 secs, 3520 KB] Test 8: TEST OK [0.005 secs, 3520 KB] All tests OK. Your program ('transform') produced all correct answers! This is your submission #2 for this problem. Congratulations! Here are the test data inputs: ------- test 1 ---- 3 --- --- --- --- -@- --- ------- test 2 ---- 5 -@@@- -@@-- -@--- ----- ----- ----- ----@ ---@@ --@@@ ----- ------- test 3 ---- 5 @@@@@ @---@ @@@@@ @@@@@ @@@@@ @@@@@ @@@@@ @@@@@ @---@ @@@@@ ------- test 4 ---- 6 -@-@-@ @-@-@- -@-@-@ @-@-@- -@-@-@ @-@-@- @-@-@- -@-@-@ @-@-@- -@-@-@ @-@-@- -@-@-@ ------- test 5 ---- 3 @@@ --- @@@ @@@ --- @@@ ------- test 6 ---- 4 @@@@ @@@@ -@@@ @@@@ @@@@ @@@@ @@@- @@@@ ------- test 7 ---- 4 @-@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @-@@ ------- test 8 ---- 10 @--------@ ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- @--------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------@ Keep up the good work! Thanks for your submission!
相关文章推荐
- usaco-2.2-lamps-pass
- usaco-2.4-ttwo-pass
- usaco-3.2-kimbits-pass
- usaco-2.1-holstein-pass
- usaco-2.1-castle-pass
- usaco-2.1-hamming-pass
- usaco-2.3-prefix-pass
- usaco-3.1-inflate-pass
- usaco-3.1-humble-pass
- usaco-numtri-pass!
- usaco-2.4-maze1-pass
- usaco-1.3-combo-pass
- usaco-2.4-cowtour-pass
- usaco-3.2-spin-pass
- usaco-pprime-pass
- usaco-2.4-comhome-pass
- usaco-ariprog1-pass
- usaco-2.1-frac1-pass
- usaco-2.2-preface-pass
- usaco-2.1-sort3-pass