设为首页 加入收藏

TOP

HDU5012 Dice 记忆化搜索
2015-07-20 17:41:16 来源: 作者: 【 】 浏览:1
Tags:HDU5012 Dice 记忆 搜索

写错了,坑了自己好久,直接广搜可能更好,我害怕超时,记忆化搜索了一下 ,写的时候小地方写错了,


int dp[7][7][7][7][7][7];

int su,sd,sl,sr,sf,sb;

int eu,ed,el,er,ef,eb;

void init() {
	memset(dp,-1,sizeof(dp));
}

bool input() {
	while(cin>>su>>sd>>sl>>sr>>sf>>sb) {
		cin>>eu>>ed>>el>>er>>ef>>eb;
		return false;
	}
	return true;
}
bool flag;

int dfs(int up,int down,int left,int right,int front,int behind) {
	if(dp[up][down][left][right][front][behind] != -1)
		return dp[up][down][left][right][front][behind];
	if(up == eu && down == ed && left == el && right == er && front == ef && behind == eb) {
		flag = true;
		return dp[up][down][left][right][front][behind] = 0;
	}
	int tmp = inf;
	dp[up][down][left][right][front][behind] = inf;
	tmp = min(tmp,dfs(right,left,up,down,front,behind));//l
	tmp = min(tmp,dfs(left,right,down,up,front,behind));//r
	tmp = min(tmp,dfs(behind,front,left,right,up,down));//f	
	tmp = min(tmp,dfs(front,behind,left,right,down,up));//b
	return dp[up][down][left][right][front][behind] = tmp + 1;
}

void cal() {
	flag = false;
	if(su == eu && sd == ed && sl == el && sr == er && sf == ef && sb == eb){
		puts("0");return ;
	}
	dfs(su,sd,sl,sr,sf,sb);
	if(flag)
		cout<
  
   


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Active Object模式 下一篇HDOJ 5009 Paint Pearls

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·用 C 语言或者限制使 (2025-12-25 08:50:05)
·C++构造shared_ptr为 (2025-12-25 08:50:01)
·既然引用计数在做 GC (2025-12-25 08:49:59)
·Java 编程和 c 语言 (2025-12-25 08:19:48)
·. net内存管理宝典这 (2025-12-25 08:19:46)