| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 3216 人关注过本帖
标题:关灯问题,最优解,新手求解
取消只看楼主 加入收藏
lybl
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-11-27
结帖率:0
收藏
已结贴  问题点数:20 回复次数:0 
关灯问题,最优解,新手求解
Description
有些人离开教室时,不关灯,浪费电。LGDdp等所有的学生和老师离开教学楼后,把所有的灯关掉。
该建筑由n层。每层楼有m间房间,最左、最右有楼梯。换句话说,建筑物可以表示为一个有n行m + 2列的矩形,第一列和最后一列代表楼梯,而中间的m列代表房间。
LGDdp站在第一层的左边楼梯。他想把所有的灯都关掉。他所站的这层上的所有灯都熄灭后,他才能再上楼。LGDdp需要一分钟的时间使用楼梯去下一个楼层,或者从当前的房间/楼梯移动到同一楼层的相邻房间/楼梯。关灯不花时间,移动花时间。LGDdp忙着刷题,机智的你能帮他找到关闭所有灯的最少时间吗?
请注意,LGDdp不必回到他的起始位置。

Input
第一行包含两个整数n和m(1≤n≤15和1≤m≤100) - 分别是每层的层数和房间数量。
接下来的n行包含建筑描述。每行包含长度为m + 2的二进制字符串,表示一个楼层(左侧楼梯,然后m个房间,然后右侧楼梯),其中0表示灯熄灭,1表示灯已亮。楼层从上到下排列,最后一行代表底层。
每个字符串的第一个和最后一个字符分别代表左边和右边的楼梯,所以它们总是0。

Output
一个整数 - 关闭所有灯光所需的最短总时间。

Sample Input
2 2
0010
0100
3 4
001000
000010
000010
4 3
01110
01110
01110
01110

Sample Output
5
12
18

HINT
在第一个例子中,LGDdp将进入底层的房间,然后他将使用左侧或右侧的楼梯进入二楼的房间。

在第二个例子中,他将去到底层的房间,使用右边的楼梯,去第二层的房间,再次使用右边的楼梯,然后去到最后一层的房间。

在第三个例子中,S型走位。
2018-02-08 17:10
快速回复:关灯问题,最优解,新手求解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.225407 second(s), 9 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved