首页 > 代码库 > usaco-tranform:pass
usaco-tranform:pass
这个题目是最简单的,虽然步数多了些,但它是最简单的,没怎么费脑力:
/*ID: qq104801LANG: 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: transformLANG: C++Compiling...Compile: OKExecuting... 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-tranform:pass
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。