uva 253 骰子涂色 算法竞赛入门经典 习题4-4

依然是暴力枚举。总共才6个面,套娃套3次就便遍历完了。但是感觉有多余的。。。。。
更简单的方法欢迎分享

原题地址
样例调试udebug

#include<iostream>
#include<string>
using namespace std;
int main()
{
	string sd;
	while(cin>>sd)
	{
	   int t = 0;
	   string ss(sd.begin()+6,sd.end());
	   string sa(sd.begin(),sd.begin()+6);
	   for(int i = 0;i<4 && !t;++i)
	    {
	    	string sc1 = sa;
	    	char cc[4];
	    	cc[0] = sc1[0];
	    	cc[1] = sc1[1];
	    	cc[2] = sc1[5];
	    	cc[3] = sc1[4];
	    	string sr3 = cc;
	    	for(int j = 0;j<4;++j)
	    	  {
	    	  	cc[j] = sr3[(j+i)%4];
			  }
			sc1[0] = cc[0];
	    	sc1[1] = cc[1];
	    	sc1[5] = cc[2];
	    	sc1[4] = cc[3];
	    	if(sc1 == ss)
	    	  {
	    	  	t = 1;
	    	  	break;
			  }
	    	for(int k = 0;k<4 && !t;++k)
	    	{
	    		string sc2;
	    		sc2 = sc1;
	    		char cb[4];
	    		cb[0] = sc2[0];
	    		cb[1] = sc2[3];
	    		cb[2] = sc2[5];
	    		cb[3] = sc2[2];
	    	    string sr2 = cb;
	    		for(int p = 0;p<4;++p)
	    		{
	    		   cb[p] = sr2[(p+k)%4];
				}
				sc2[0] = cb[0];
	    		sc2[3] = cb[1];
	    		sc2[5] = cb[2];
	    		sc2[2] = cb[3];
	    		if(sc2 == ss)
	    	   {
	    	  	  t = 1;
	    	  	  break;
			   }
	    		for(int l = 0;l<4 && !t;++l)
	    		{
	    			string sc3;
	    			sc3 = sc2;
	    			char cd[4];
	    			cd[0] = sc3[1];
	    			cd[1] = sc3[3];
	    			cd[2] = sc3[4];
	    			cd[3] = sc3[2];
	    			string sr1 = cd;
	    			for(int m = 0;m<4;++m)
                    {
					cd[m] = sr1[(m+l)%4];
						}
                    sc3[1] = cd[0];
	    			sc3[3] = cd[1];
	    			sc3[4] = cd[2];
	    			sc3[2] = cd[3];
	    			if(sc3 == ss)
	    		      {
	    		      	t = 1;
	    		      	break;
					  }
				}
			}
		}
		if(t)
		  cout<<"TRUE"<<endl;
		else
		  cout<<"FALSE"<<endl;
	}
 } 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值