- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
进一步分析 从左到右一定不会出现4个插头a, b, c, d,a, c匹配,b, d匹配. d c a b 插头不会交叉 插头不会交叉 插头两两匹配 括号序列!!! ( ) ( ( ) ) 括号表示法 ( ( ) ) ) ( 0:无插头状态,用 # 表示 1:左括号插头,用 ( 表示 2:右括号插头,用 ) 表示 3进制 # (1 1 2 0 2 1 2)3 有人会去用三进制么? 用两位字节保存一个位置的状态 10 --- ( 01 --- ) 00 --- # 接下来考虑转移: Case 1 产生新的联通分量 原来没有插头 现在有下插头和右插头 ) 插头 ( 插头 ( # # # ) ( ( ) # ) Case 1 对应一种情况: Case 2 ( 插头 (插头 # ( ( ) ) # # # ( ) ( 插头 合并两个联通分量 Case 2 另两种情况 与例子类似, 合并两个不同的联通分量 合并一个联通分量, 只能出现在最后一格 Case 2 j i 删除i,j在当前格子中的部分 将i的另一半和j的另一半合并即可 Case 2 由括号匹配的性质,可以用栈找到某个括号的另一边 Case 2 由括号匹配的性质,可以用栈找到某个括号的另一边 对应一种情况: Case 3 维持联通分量 ) 插头 )插头 无插头 ( ( ) # ) ( ( ) # ) Case 3 对应四种情况: 不会产生新的联通分量 实现: 宽搜出所有状态 每次寻找当前状态可以更新的状态 可以使用滚动数组以节省空间 最小表示法可做 参考 hdu 1693 eat the tree 3.棋盘染色问题 black and white 给出一个部分格子已有颜色的黑白棋盘,将其余格子染色,要求所有黑色连在一起,所有白色连在一起,不能出现2×2的同色区域。 求方案数 不可行方案: 可行方案: n=2,m=3时的九种情况 状态表示: 显然需要记录轮廓线上格子的颜色以及联通情况 状态表示: 显然需要记录轮廓线上格子的颜色以及联通情况 由于规定2×2区域不能同色,故需记录当前格子左上角的格子 那么轮廓线大概长成这样: 状态表示: 显然需要记录轮廓线上格子的颜色以及联通情况 由于规定2×2区域不能同色,故需记录当前格子左上角的格子 那么轮廓线大概长成这样: 记录以后出现的格子颜色 是否固定 格子颜色可以二进制表示, 对于格子的联通情况,此时连通的块并不是一一对应,一个联通块可能有多个格子在轮廓线上: 红色代表轮廓线 数字代表联通块 不过仍有性质两个联通块不会交叉 括号表示法不再适用,此时需要用到 不过仍有性质两个联通块不会交叉 括号表示法不再适用,此时需要用到 广义括号表示法 10:处于一个联通块最左边的点,用 (# 表示 01:处于一个联通块最右边的点,用 #) 表示 00:处于一个联通块中间边的点,用 ## 表示 11:单独一个点的联通块,用()表示 1 2 2 3 2 1 (# (# ## () #) #) 只做介绍,不推荐使用,代码过于繁琐 建议使用最小表示法 我们先来看一个例子: 一个m * n的棋盘 有的格子存在障碍 求经过所有非障碍格子的哈密顿回路个数. 数据范围为m, n = 12. 下面这个图共有2条不同的哈密顿回路. 我们先来看一个例子: 一个m * n的棋盘 有的格子存在障碍 求经过所有非障碍格子的哈密顿回路个数. 数据范围为m, n = 12. 下面这个图共有2条不同的哈密顿回路. 对于一个4-连通的棋盘模型的问题来说,一个格子最多有上下左右4个插头. 一个格子某个方向的插头存在表示这个格子在这个方向可以与外面相连. 轮廓线是已决策格子和未决策格子的分界线,它随着转移的过程不断变化. 轮廓线上方与其直接相连的有n+1个插头,包括轮廓线上方n个格子的下插头和最后一个决策格子的下插头. 只有这n+1个插头的状态对以后的决策产生直接的影响. 对于一个4-连通的棋盘模型的问题来说,一个格子最多有上下左右4个插头. 一个格子某个方向的插头存在表示这个格子在这个方向可以与外面相连. 轮廓线是已决策格子和未决策格子的分界线,它随着转移的过程不断变化. 轮廓线上方与其直接相连的有n+1个插头,包括轮廓线上方n个格子的下插头和最后一个决策格子的下插头. 只有这n+1个插头的状态对以后的决策产生直接的影响. 设f[i][j][S]表示转移完(i,j)后轮廓线上n+1个插头是否存在以及它们之间的连通性为S的方案总数. 那么我们该如何表示S呢? 为了避免一个连通信息有多个状态表示,我们通常使用最小表示法. 最
您可能关注的文档
- SoftMaster使用说明.ppt
- SLIPA简易喉罩操作指南.ppt
- 2015级园林技术专业人才培养方案.doc
- SolidWorks基础图文教学(十).doc
- SnO2 掺杂稀土氧化物对CO2及还原性气体的气敏性研究.ppt
- Spark 实战第 5 部分使用 ML Pipeline 构建机器学习工作流.docx
- 2015经济生活第一单元试题.doc
- Songs in Chinese to.ppt
- SpringMvc搭建开发框架平台【基本使用说明】.docx
- Spring Data JPA初使用.doc
- SuperMap图层中线段的编辑教程5.docx
- S版8册语文百花园八.ppt
- 2016-2017人教版小学美术六年级上册教学计划与设计.doc
- S版小学三年级语上册导学案.doc
- SYB创业培训课件完整版(第一步——第十步).ppt
- S型新月型插花.ppt
- 2016-2017学年九年级英语全册 Unit 4 I used to be afraid of the dark Section B课件.ppt
- 2016-2017学年人教A版必修五 2.1数列的概念与简单表示法 课件 (22张).ppt
- 2016-2017学年九年级英语全册 Unit 6 When was it invented Section B课件.ppt
- 2016-2017学年人教版必修一第二课第一节 影响价格的因素 课件(11张).ppt
文档评论(0)