翻转吧!方块
来源:互联网 发布:vb 获取当月第一天 编辑:程序博客网 时间:2024/05/17 20:29
#include <stdio.h>char a[10][10];char b[10][10];char c[10][10];void rotate(int n){ int i,j;int k;for(i=0,j=n-1;i<n;i++,j--) {for(k=0;k<n;k++) {b[k][j]=a[i][k]; } } for(i=0;i<n;i++) {for(j=0;j<n;j++) {a[i][j]=b[i][j]; } }}int turn(int n) { int i,j; int mid =n/2; int k; for(i=0,j=n-1;i<mid;i++,j--) { for(k=0;k<n;k++){ if(a[k][i]!=a[k][j]) { a[k][i]=(a[k][i]+a[k][j]) -(a[k][j]=a[k][i]); } } }}int equal(int n) { int i,j; for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(a[i][j]!=c[i][j]) return 0; } } return 1;}int way(int i,int n) { switch(i) { case 1: rotate(n);if(equal(n)) return 1; else { rotate(n);rotate(n);rotate(n); return 0;} case 2: rotate(n);rotate(n);if(equal(n)) return 1; else {rotate(n); rotate(n); return 0;} case 3: rotate(n);rotate(n);rotate(n);if(equal(n)) return 1; else {rotate(n);return 0;} case 4: turn(n);if(equal(n)) return 1; else {turn(n);return 0;} case 5: turn(n); rotate(n); if(equal(n)) return 1; rotate(n); if(equal(n)) return 1; rotate(n); if(equal(n)) return 1; rotate(n); turn(n); return 0; case 6:if(equal(n))return 1; else return 0; case 7: return 1; }}int main(int argc, char* argv) {int n;while(scanf("%d",&n)!=EOF) { int i,j; char t=getchar(); for(i=0;i<n;i++) { for(j=0;j<n;j++) { scanf("%c",&a[i][j]); } t=getchar(); } for(i=0;i<n;i++) { for(j=0;j<n;j++) { scanf("%c",&c[i][j]); } t=getchar(); } for(i=1;i<=7;i++){ if(way(i,n)) { printf("%d\n",i); break; } } }}
0 0
- 翻转吧!方块
- 【几何翻转】Transformations 方块转换(Usaco_Training 1.2)
- 翻转吧!字符串
- 翻转吧!字符串
- 翻转吧!字符串
- 翻转
- 翻转
- 翻转
- 《中国方块》
- 旋转方块
- 堆积方块
- 数方块
- 方块倒计时
- SDUTOJ 2085 翻转吧!字符串
- 【面试题】翻转吧!字符串!
- 用汉编做的方块
- 打方块游戏
- 鼠标控制方块
- 引用与指针有什么区别?
- 对数据库一些基本知识的认识
- HDU 4738 Caocao's Bridges(找无向图的桥 双联通)
- 【CCF】节日
- Java学习路线图
- 翻转吧!方块
- 1022. Digital Library (30)
- IOS 常用快捷键----蓝懿教育
- c语言学习第二天
- 划分数
- Strassen矩阵乘法
- Adding Users to Passwordfile / Using Passwordfile Authentication (Doc ID 184696.1)
- IOS 类方法与实例方法的区别
- Canvas制作排序算法演示动画