清华数据结构玩具AC85

这篇博客介绍了作者使用蛮力算法解决清华数据结构问题,通过尝试所有可能的路径来解决魔方复原。尽管这种方法耗时较长,无法在一秒内完成,但博主旨在学习数据结构,因此未深入探究更高效的算法,最终得到85的解决方案。
摘要由CSDN通过智能技术生成

本人采用的是蛮力算法,即,对于每种状态,将可能接下去的路都进行一遍(共3条路可以走)

然后,终止条件是,最终可用于前进的步子为0,即,count=hi。这时候,则说明每一个步子都是重复前人的步子,最终必然又会回到最初的起点,故终止。或者终止条件是,找到答案了。

但是蛮力算法耗时久,无论如何也无法在1s内完成计算。

而根据前人的成功例子来看,必然存在某种规则,我也想了蛮久的。可暂时还是没发现规则,由于我的目的是学习数据结构,所以对魔方复原的规则在此也就不再深究了,也就只能拿85了。。。(不甘心呀QAQ)

#define _CRT_SECURE_NO_DEPRECATE
#include<stdio.h>
#define maxn 130309//maxn取得足够大,保证没有冲突
#define max_num 1000
using namespace std;
struct toyy {
	int toy[8];
	int effect = 1;//用来记录当前的toy是否有效,无效则遍历时跳过
	int h = 0;//用来记录当前步数
	toyy&operator=(const toyy&a)
	{
		for (auto i = 0; i < 8; i++)toy[i] = a.toy[i];
		effect = a.effect;
		h = a.h;
		return *this;
	}
};
int toys[8] = { 1,2,3,4,5,6,7,8 };
struct boxx {
	int num = 0;
	int index = 0;
	boxx&operator=(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值