题目链接

去年现场,虎哥1Y的,现在刷刷题,找找状态...

一共6种转法,把3个面放到顶部,左旋和右旋,感觉写的还不错....都写成常数了。

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <queue>
#include <algorithm>
#define LL long long
using namespace std;
struct node
{
int num[];
int st;
};
int dr[] = {,,,,,,,,,,,};
int dc[] = {,,,,,,,,,,,};
int a[] = {,,,,,,,,,,,};
int b[] = {,,,,,,,,,,,};
int c[] = {,,,,,,,,,,,};
int aim[][] = {
{,,,},
{,,,},
{,,,},
{,,,},
{,,,},
{,,,}
};
int judge(int *p)
{
int ans = ,i,j;
for(i = ;i < ;i ++)
{
for(j = ;j < ;j ++)
{
if(p[aim[i][j]] != p[aim[i][]])
break;
}
if(j == ) ans ++;
}
return ans;
}
int main()
{
node u,v;
int n,i,ans;
while(scanf("%d",&n)!=EOF)
{
for(i = ;i < ;i ++)
{
scanf("%d",&u.num[i]);
}
u.st = ;
queue<node>que;
que.push(u);
ans = ;
while(!que.empty())
{
u = que.front();
que.pop();
if(ans == ) break;
ans = max(ans,judge(u.num));
if(u.st == n) continue;
v.st = u.st + ;
//a
for(i = ;i < ;i ++)
{
v.num[i] = u.num[i];
}
for(i = ;i < ;i ++)
{
v.num[a[dr[i]]] = u.num[a[i]];
}
que.push(v);
for(i = ;i < ;i ++)
{
v.num[a[dc[i]]] = u.num[a[i]];
}
que.push(v);
//b
for(i = ;i < ;i ++)
{
v.num[i] = u.num[i];
}
for(i = ;i < ;i ++)
{
v.num[b[dr[i]]] = u.num[b[i]];
}
que.push(v);
for(i = ;i < ;i ++)
{
v.num[b[dc[i]]] = u.num[b[i]];
}
que.push(v);
//c
for(i = ;i < ;i ++)
{
v.num[i] = u.num[i];
}
for(i = ;i < ;i ++)
{
v.num[c[dr[i]]] = u.num[c[i]];
}
que.push(v);
for(i = ;i < ;i ++)
{
v.num[c[dc[i]]] = u.num[c[i]];
}
que.push(v);
}
printf("%d\n",ans);
}
return ;
}

HDU 4801 Pocket Cube的更多相关文章

  1. HDU 5292 Pocket Cube 结论题

    Pocket Cube 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5292 Description Pocket Cube is the 2×2× ...

  2. 【HDOJ】4801 Pocket Cube 的几种解法和优化

    1. 题目描述给定一个$2 \times 2 \times 2$的魔方,当某个面上的4个小块颜色均相同时,称这个面为complete.求对这个魔方进行$n \in [1,7]$次旋转(沿某个面顺时针或 ...

  3. 2013区域赛长沙赛区现场赛 K - Pocket Cube

    K - Pocket Cube Time Limit:10000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Su ...

  4. Pocket Cube

    Pocket Cube http://acm.hdu.edu.cn/showproblem.php?pid=5983 Time Limit: 2000/1000 MS (Java/Others)    ...

  5. 【】【】Pocket Cube

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

  6. 2013 ACM区域赛长沙 K Pocket Cube hdu 4801

    题意:给了一个2*2的魔方..每步操作可以将任意一面翻转90度..现在问在N(<=7)步内.最多能翻出几面相同的. 直接打表模拟每种翻转情况 #include<cstdio> #in ...

  7. HDU 1220 B - Cube

    http://acm.hdu.edu.cn/showproblem.php?pid=1220 一开始的做法是,先暴力算出一个面,就是n * n的面,能有多少对.记作face 然后从上开始算下来,最上一 ...

  8. hdu 3547 DIY Cube (Ploya定理)

    DIY Cube Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total S ...

  9. 模拟 ZOJ 3736 Pocket Cube

    题目传送门 题意:魔方最多旋转n次,问最多能使多少面颜色相同 分析:6种状态(3种旋转方式*顺逆方向,其他对称的!),首先先打个表,然后很愉快的DFS.自己写的时候费劲脑汁,代码很长,还TLE了... ...

随机推荐

  1. python table转空格

    有需求: 预留,先上代码: import os def Table_Space(file_name,lis_out,tab_num = 4): file_str = open(file_name,&q ...

  2. MySQL interval()函数

    INTERVAL(N,N1,N2,N3,..........) INTERVAL()函数进行比较列表(N,N1,N2,N3等等)中的N值.该函数如果N<N1返回0,如果N<N2返回1,如果 ...

  3. [转] 有java基础的人如何转行做大数据?

    数据有两个方向,一个是偏计算机的,另一个是偏经济的.你学过Java,所以你可以偏将计算机基础1. 读书<Introduction to Data Mining>,这本书很浅显易懂,没有复杂 ...

  4. kill命令

    *杀死进程最安全的方法是单纯使用kill命令,不加修饰符,不带标志.   首先使用ps -ef命令确定要杀死进程的PID,然后输入以下命令:   # kill -pid   注释:标准的kill命令通 ...

  5. Demo中的IOC自定义实现

    在做练习的时候,小小项目,使用IOC控件觉得麻烦,使用工厂觉得不高大上啊,自己写个简陋的依赖注入IOC吧; 控制反转(IOC)是管理映射依赖的的,是依赖倒置(DIP)的实现方式; 依赖倒置(DIP)是 ...

  6. 重建索引提高SQL Server性能

    大多数SQL Server表需要索引来提高数据的访问速度,如果没有索引,SQL Server 要进行表格扫描读取表中的每一个记录才能找到索要的数据.索引可以分为簇索引和非簇索引,簇索引通过重排表中的数 ...

  7. JHChart 1.1.0 iOS图表工具库中文ReadMe

    JHChart(最新版本1.1.0) 好吧,的确当前的github上已经存有不少的iOS图表工具库,然而,当公司的项目需要图表时,几乎没有哪个第三方能够完全满足我的项目需求.无奈之下,本人不得不花费一 ...

  8. Docker上ubuntu新建用户的网络访问不通问题

    背景 作为一个生命不息,折腾不止的码农.各种操作系统被我不知道搞崩了多少次,无数个夜晚连夜抢修数据,重装系统,那个累啊!! Option 1:备份.数据可以备份,配置可以备份,安装包可以备份.但是安装 ...

  9. 四、线程同步之Lock和Condition

    Lock同步锁 Lock 在jdk1.5  提供了Lock以便执行同步操作,和synchronized不同的是Lock提供了显示的方法获取锁和释放锁.Lock提供了以下几个方法,请求和释放锁: voi ...

  10. SQL Server 2012 开发新功能 序列对象(Sequence)(转)

    转载链接:http://www.cnblogs.com/zhangyoushugz/archive/2012/11/09/2762720.html 众所周知,在之前的sqlserver版本中,一般采用 ...