⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1461s rotations and reflections.cpp

📁 威士忌的HDU题解.大概有260多题的源码。对于学习非常有好处。
💻 CPP
字号:
#include<stdio.h>char vzor[10][22];char s[20];char *(vzor0[10]);int n;int i,j;void osa(void) { int i,j1,j2; char c; for (j1=0; j1<n/2; j1++) {  j2=n-1-j1;  for (i=0; i<n; i++) {   c=vzor[j1][i];   vzor[j1][i]=vzor[j2][i];   vzor[j2][i]=c;   }  } }void rotace(void) { int i1,i2,j1,j2; char c; for (i1=0,i2=n-1; i1<n/2; i1++,i2--)  for (j1=0; j1<(n+1)/2; j1++) {   j2=n-1-j1;   c=vzor[i1][j1];   vzor[i1][j1]=vzor[j2][i1];   vzor[j2][i1]=vzor[i2][j2];   vzor[i2][j2]=vzor[j1][i2];   vzor[j1][i2]=c;   } }int shoda(void) { int i,j; for (i=0; i<n; i++)  for (j=0; j<n; j++)   if (vzor[i][j]!=vzor0[i][j])    return 0; return 1; }int main() { gets(s); sscanf(s,"%d",&n); while (n) {  for (i=0; i<n; i++) {   gets(vzor[i]);   vzor[i][n]=0;   vzor0[i]=&vzor[i][n+1];   }  if (shoda())   printf("Preserved\n");  else {   rotace();   if (shoda())    printf("Rotated through 90 degrees\n");   else {    rotace();    if (shoda())     printf("Rotated through 180 degrees\n");    else {     rotace();     if (shoda())      printf("Rotated through 270 degrees\n");     else {      rotace();      osa();      if (shoda())       printf("Reflected\n");      else {       rotace();       if (shoda())	printf("Reflected and rotated through 90 degrees\n");       else {	rotace();	if (shoda())	 printf("Reflected and rotated through 180 degrees\n");	else {	 rotace();	 if (shoda())	  printf("Reflected and rotated through 270 degrees\n");	 else	  printf("Improper\n");	 }	}       }      }     }    }   }  gets(s);  sscanf(s,"%d",&n);  } return 0; }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -