题意是说给定一个 2*2 魔方的各个面的情况,问是否能转动不超过一次使得魔方复原。

思路是先在输入的时候统计一下已完成的面数,要想以最多一次的转动使得魔方复原,那么已完成的面数只能是 2 面或者 6 面,此处可剪枝。

若已完成 6 面,那么一定可以复原;

若已完成 2 面,则要用一次转动完成其他六面,开始这里打算用结构体去存,结果在判断的时候自己混乱了……最终直接定了 24 个变量,a,b,c……w,x,

手动做了个小正方体,太丢人……(但不得不说这种方法挺好的,易于理解,而且不会乱^_^)

代码如下:

 #include <bits/stdc++.h>
using namespace std;
int a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;
bool xu[];
int main()
{
int times,cnt;
bool wu;
scanf("%d",&times);
while(times--)
{
cnt = ;
memset(xu,,sizeof(xu));
scanf("%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f,&g,&h,&i,&j,&k,&l,&m,&n,&o,&p,&q,&r,&s,&t,&u,&v,&w,&x);
if(a==b&&b==c&&c==d)
{
++cnt;
xu[] = ;
}
if(e==f&&f==g&&g==h)
{
++cnt;
xu[] = ;
}
if(i==j&&j==k&&k==l)
{
++cnt;
xu[] = ;
}
if(m==n&&n==o&&o==p)
{
++cnt;
xu[] = ;
}
if(q==r&&r==s&&s==t)
{
++cnt;
xu[] = ;
}
if(u==v&&v==w&&w==x)
{
++cnt;
xu[] = ;
}
if(cnt==) puts("YES");
else if(cnt==)
{
wu = ;
if(xu[]&&xu[])
{
if(m==n&&m==u&&m==w)
{
if(v==x&&v==e&&v==f)
if(g==h&&g==r&&g==t)
if(q==s&&q==o&&q==p)
wu = ;
}
else if(m==n&&m==r&&m==t)
{
if(q==s&&q==e&&q==f)
if(g==h&&g==u&&g==w)
if(v==x&&v==o&&v==p)
wu = ;
}
}
else if(xu[] && xu[])
{
if(a==b&&a==w&&a==x)
{
if(u==v&&u==i&&u==j)
if(k==l&&k==s&&k==t)
if(q==r&&q==c&&q==d)
wu = ;
}
else if(a==b&&a==s&&a==t)
{
if(q==r&&q==i&&q==j)
if(k==l&&k==w&&k==x)
if(u==v&&u==c&&u==d)
wu = ;
}
}
else if(xu[] && xu[])
{
if(a==c&&a==n&&a==p)
{
if(m==o&&m==j&&m==l)
if(i==k&&i==f&&i==h)
if(e==g&&e==b&&e==d)
wu = ;
}
else if(a==c&&a==f&&a==h)
{
if(e==g&&e==j&&e==l)
if(i==k&&i==n&&i==p)
if(m==o&&m==b&&m==d)
wu = ;
}
}
if(wu) puts("YES");
else puts("NO");
}
else puts("NO");
}
return ;
}

HDU 5983(模拟魔方 模拟)的更多相关文章

  1. HDU 5510---Bazinga(指针模拟)

    题目链接 http://acm.hdu.edu.cn/search.php?action=listproblem Problem Description Ladies and gentlemen, p ...

  2. HDU 5047 Sawtooth(大数模拟)上海赛区网赛1006

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5047 解题报告:问一个“M”型可以把一个矩形的平面最多分割成多少块. 输入是有n个“M",现 ...

  3. HDU 5965 扫雷 【模拟】 (2016年中国大学生程序设计竞赛(合肥))

    扫雷 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submissi ...

  4. HDU 5935 Car 【模拟】 (2016年中国大学生程序设计竞赛(杭州))

    Car Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...

  5. HDU 5912 Fraction 【模拟】 (2016中国大学生程序设计竞赛(长春))

    Fraction Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Su ...

  6. hdu 4831 Scenic Popularity(模拟)

    pid=4831" style="font-weight:normal">题目链接:hdu 4831 Scenic Popularity 题目大意:略. 解题思路: ...

  7. HDU 5538 House Building(模拟——思维)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5538 Problem Description Have you ever played the vi ...

  8. hdu 4930 斗地主恶心模拟

    http://acm.hdu.edu.cn/showproblem.php?pid=4930 就是两个人玩斗地主,有8种牌型,单张,一对,三张,三带一,三带对,四带二,四炸,王炸.问先手能否一次出完牌 ...

  9. hdu 4995 离线处理+模拟

    http://acm.hdu.edu.cn/showproblem.php?pid=4995 给定一维坐标下的n个点,以及每个点的权值,有m次查询,每次将查询的x点上的权值修改为离x最近的k个点权值的 ...

随机推荐

  1. 爬虫系列---scrapy post请求、框架组件和下载中间件+boss直聘爬取

    一 Post 请求 在爬虫文件中重写父类的start_requests(self)方法 父类方法源码(Request): def start_requests(self): for url in se ...

  2. 【Linux基础】查看硬件信息-内存和硬盘

     1.使用free命令查看内存使用 (1)内存总量大小:查看Mem中的total值3697M free -m total used free shared buffers cached -/+ buf ...

  3. 【Teradata SQL】禁用和启用数据库用户登录

    1.禁用数据库用户登录 禁用登录后,再次登录会报用户或密码错误.执行命令如下: //使用dbc用户执行SELECT 'REVOKE LOGON ON ALL FROM '||USERNAME||';' ...

  4. Python开发【第一篇】基础题目一

    1.求1-2+3-4+5.....99的所有数的和 n = 1 s = 0 while n<100: temp = n%2 if temp == 0: #偶数 s = s-n else: s = ...

  5. web框架开发-Django组件cookie与session

    http协议的每一次都是无保存状态的请求,这会带来很多的不方便,比如,一刷新网页,或者进入该网页的其他页面,无法保存之前的登录状态.为了解决类似这样的问题,引入了会话跟踪 会话跟踪技术 1 什么是会话 ...

  6. 2-STM32带你入坑系列(点亮一个灯--Keil)

    1-STM32带你入坑系列(STM32介绍) 首先是安装软件 这一节用Kei来实现,需要安装MDK4.7这个软件,怎么安装,自己百度哈.都学习32的人了,不会连个软件都不会安装吧....还是那句话 没 ...

  7. VSCode 必装的 10 个高效开发插件

    本文介绍了目前前端开发最受欢迎的开发工具 VSCode 必装的 10 个开发插件,用于大大提高软件开发的效率. VSCode 的基本使用可以参考我的原创视频教程「VSCode 高效开发必装插件」. V ...

  8. Linux基础(一)

    01-服务器 1.1 服务器型号 1.2 电源---双电源 1.3 CPU---计算,(2个CPU=2路) 1.4 内存 面试题:bufffer和cache的区别? buffer:写入数据到内存里,这 ...

  9. (hdu 6024) Building Shops

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6024 Problem Description HDU’s n classrooms are on a ...

  10. Centos查看tomcat状态及操作

    启动:一般是执行sh tomcat/bin/startup.sh 查看:执行ps -ef |grep tomcat 输出如下 www 5144 ...等等.Bootstrap start 说明tomc ...