首页 > 其他 > 详细

POJ 1166 The Clocks

时间:2018-05-22 23:44:17      阅读:301      评论:0      收藏:0      [点我收藏+]
3x3的钟盘,分别有12点,3点,6点,9点4中情形。然后给出的方法表中,数字对应着要转动的钟表,每次顺时针转动90度,求使得所有的钟表都指向12点的最短操作方法。
参考文章:https://www.cnblogs.com/kuangbin/archive/2012/08/31/2666167.html

#include<cstdio>

int main()
{
int b[10],t[10],c[10],i;//表盘的状态,数字对应方法的转动次数,转动后表盘的结果
for(i=1;i<=9;i++) scanf("%d",&b[i]);
for(t[1]=0;t[1]<=3;t[1]++)//转动4次相当于没有转动
for(t[2]=0;t[2]<=3;t[2]++)
for(t[3]=0;t[3]<=3;t[3]++)
for(t[4]=0;t[4]<=3;t[4]++)
for(t[5]=0;t[5]<=3;t[5]++)
for(t[6]=0;t[6]<=3;t[6]++)
for(t[7]=0;t[7]<=3;t[7]++)
for(t[8]=0;t[8]<=3;t[8]++)
for(t[9]=0;t[9]<=3;t[9]++)
{
c[1]=(b[1]+t[1]+t[2]+t[4])%4;
c[2]=(b[2]+t[1]+t[2]+t[3]+t[5])%4;
c[3]=(b[3]+t[2]+t[3]+t[6])%4;
c[4]=(b[4]+t[1]+t[4]+t[5]+t[7])%4;
c[5]=(b[5]+t[1]+t[3]+t[5]+t[7]+t[9])%4;
c[6]=(b[6]+t[3]+t[5]+t[6]+t[9])%4;
c[7]=(b[7]+t[4]+t[7]+t[8])%4;
c[8]=(b[8]+t[5]+t[7]+t[8]+t[9])%4;
c[9]=(b[9]+t[6]+t[8]+t[9])%4;
if(c[1]+c[2]+c[3]+c[4]+c[5]+c[6]+c[7]+c[8]+c[9]==0)
{
for(i=0;i<t[1];i++) printf("1 ");
for(i=0;i<t[2];i++) printf("2 ");
for(i=0;i<t[3];i++) printf("3 ");
for(i=0;i<t[4];i++) printf("4 ");
for(i=0;i<t[5];i++) printf("5 ");
for(i=0;i<t[6];i++) printf("6 ");
for(i=0;i<t[7];i++) printf("7 ");
for(i=0;i<t[8];i++) printf("8 ");
for(i=0;i<t[9];i++) printf("9 ");
printf("\n");
return 0;
}
}
}

POJ 1166 The Clocks

原文:http://blog.51cto.com/13688928/2119262

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!