• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > 棋盘连线算法问题

棋盘连线算法问题

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了棋盘覆盖问题算法,棋盘覆盖算法,棋盘覆盖算法c语言,棋盘覆盖算法c,马踏棋盘算法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:棋盘连线算法问题
描述:

一个NxN的棋盘,其中有m对棋子,以连线的方式将每一对棋子都连接起来,并保证棋盘被填满。(连接仅能横竖移动,不可交叉,不能跨棋子)

例如给定5x5的棋盘:

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

其中1、2、3、4分别代表棋子,0代表空位(可连线)。期望连接完成之后:

4 4 4 4 3
4 2 2 2 3
4 2 1 2 3
4 2 1 2 3
4 2 1 3 3

其中除了初始点之外的数字都代表线。这里需要注意是“连线”,即每条线必须是有头有尾有顺序的,实际输出结果中也应包含线的每一段的顺序以模拟实际划线过程(谢谢 @felix021 提醒)。化为图形界面大概就是下面这样:
背包问题 贪心算法,算法问题实战策略 pdf,遗传算法求解tsp问题,算法问题实战策略,旅行商问题算法,遗传算法解决tsp问题,a 算法 旅行商问题,蚁群算法求解tsp问题,01背包问题贪心算
求连接算法或思路,语言不限。

问题补充:本人首先自己写了一个连接算法,是纯粹的递归尝试(因为不是求最短路径,没有用A star),复杂度太高,对小棋盘还好很快出结果(JS在Chrome上几秒之内),但从9x9开始效率惨不忍睹(几十分钟到几个小时-_-#),想了一下没有想到太好的解决方案,求各位帮助啊~~多谢多谢~


解决方案1:

感觉像芯片上布线

解决方案2:

我之前写过一个连连看的,和你的问题应该一样,思路是这样的:
1.先判断两点能不能用线段直接连接,能的话问题解决,否则第2步判断。
2.判断两点能不能用仅有一个拐点的折线段连接,能的话问题解决,否则第3步判断。
3.判断两点能不能用仅有两个拐点的折线段连接,能的话问题解决,否则连接不上。
(注:这里说的都是横/竖线段)

假设想要连接的两个点为a、b,算出过a点的横线段A1和过b点的竖线段B1,算出过a点的竖线段A2和过b点的横线段B2
第2步的解决方法:
判断A1、B1能不能相交。不能的话,判断A2、B2能不能相交。
第3步的解决方法:
判断是否有竖线段C1能连接A1和B2,判断是否有横线段C2能连接A2和B1。
-------------完-------------------

不知道能不能解决你的问题。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 棋盘连线算法问题

相关文章

  • 2017-06-07 输入输出""和"",判断输入是否正确
  • 2017-06-07 (python)socket发送的信息怎么在浏览器中显示出来
  • 2017-06-07 用正则匹配class时引出的一个疑惑?
  • 2017-06-07 七牛音视频转码后的文件名称如何设置?
  • 2017-06-07 JBOSS上运行的项目不打Systemoutprintln的信息,怎么解决
  • 2017-06-07 七牛删除空间缓存API接口疑问
  • 2017-06-07 如何防止用户没有经过许可,进而通过POST上传图片?
  • 2017-06-07 使用Ueditor中的swfupload空间上传图片到七牛云的一些问题?
  • 2017-06-07 如何检测网站的安全性
  • 2017-06-07 用nodejs接受http请求,把数据缓存在node的栈里,可以替代内存nosql数据库?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • (python)requests提交的jsondumps不能被服务器解析
    • unity圣典qiniu,在unity下能够使用吗?
    • python爬虫翻页问题,请问各位大神我这段代码怎样翻页,还有价格要登陆后才能看到,应该怎么解决
    • python的一个浮点数计算问题
    • JavaScript怎么在实现的匿名函数的参数中传入数据?
    • c语言中普通变量
    • nodejs的事件回调机制是否属于设计模式中的某一种?
    • python3X二进制字符串的问题
    • 求教hibernate集合映射问题
    • python的strip()函数,在程序中使用只清除了左边的数据

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有