• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
锦燕云
博客园    首页    新随笔    联系   管理    订阅  订阅

USACO Section 1.2 : Transformations

transform.c
# include <stdio.h>
char s1[11][11],s2[11][11],t1[11][11],t2[11][11];
int n;

int cpy(char a1[11][11],char a2[11][11])
{
   
int i,j;
   
for (i=1;i<=n;i++)
      
for (j=1;j<=n;j++)
         a1[i][j]
=a2[i][j];
   
return (0);
}

int find (char a1[11][11],char a2[11][11])
{
   
int i,j;
   
for (i=1;i<=n;i++)
      
for (j=1;j<=n;j++)
         
if (a1[i][j]!=a2[i][j]) return (0);
   
return (1);
}


int t90(char a1[11][11],char a2[11][11])
{
   
int i,j;
   
for (i=1;i<=n;i++)
      
for (j=1;j<=n;j++)
         a2[i][j]
=a1[abs(n-j+1)][i];
   
return (0);   
}

int reflection(char a1[11][11],char a2[11][11])
{
   
int i,j;
   
for (i=1;i<=n;i++)
      
for (j=1;j<=n;j++)
         a2[i][j]
=a1[i][n-j+1];
   
return (0);
}


main ()
{
   FILE 
*in=fopen("transform.in","r");
   FILE 
*out=fopen("transform.out","w");
   
int i,j;

   fscanf (
in,"%d\n",&n);
   
for (i=1;i<=n;i++)
   {
      
for (j=1;j<=n;j++)
         fscanf (
in,"%c",&s1[i][j]);
      fscanf (
in,"\n");
      }
   
for (i=1;i<=n;i++)
   {
      
for (j=1;j<=n;j++)
         fscanf (
in,"%c",&s2[i][j]);
      fscanf (
in,"\n");
      }
   cpy (t1,s1);
   
for (i=1;i<=3;i++)
   {
      t90(t1,t2);
      
if (find (t2,s2))
      {
         fprintf (
out,"%d\n",i);
         fclose(
in);
         fclose(
out);
         exit(
0);
         }
      cpy(t1,t2);
      }
   cpy (t1,s1);
   reflection(t1,t2);
   
if (find (t2,s2)==1)
   {
      fprintf (
out,"4\n");
      fclose(
in);
      fclose(
out);
      exit(
0);
      }
   
for (i=1;i<=3;i++)
   {
      cpy(t1,t2);
      t90(t1,t2);
      
if (find (t2,s2)==1)
      {
         fprintf (
out,"5\n");
         fclose(
in);
         fclose(
out);
         exit(
0);
         }

      }
   
if (find (s1,s2)==1)
   {
      fprintf (
out,"6\n");
      fclose(
in);
      fclose(
out);
      exit(
0);
      } 
   fprintf (
out,"7\n");   
   fclose(
in);
   fclose(
out);
   exit(
0);
}
posted @ 2009-08-01 18:27  锦燕云  阅读(140)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3