c++ - 7*7格子范围内,随机分布从1-5的5个数字
大家讲道理
大家讲道理 2017-04-17 11:28:33
[C++讨论组]

前提:设总移动格子数为

int total=0
int grid[7][7]

grid[2][3]=1进行

left:grid[2][2]=1 grid[2][3]=4 total++
right: grid[2][4]=1 grid[2][3]=0 total++
up:grid[1][3]=1 grid[2][3]=0 total++
down:grid[3][3]=1 grid[2][3]=0 total++
sucess(1 or 2):
1.for(int i=0; i<6; i++) grid[x][y+i] = i+1
2.for(int i=0; i<6; i++) grid[x+i][y] = i+1

7x7格子中有1-5,5个数字,可以上下左右移动,每次移动消耗total++,找出一种total为最小的移动方法,使1-5排列成横行或者竖列,目前没啥思路,求思路或者方案

如:

0 0 0 0 0 0 0
2 0 0 0 0 0 0
0 0 4 1 0 0 0
0 3 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 5 0

移动为:

0 0 0 0 0 0 0
0 0 0 0 0 0 0
1 2 3 4 5 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(1)
PHPz

可以BFS+剪枝试一试,用A*也可以,不过不知道能不能最优

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号