出个简单题,给明天的prelim攒一下rp

FancyMouse 2010-10-09 10:50:21
给学校算法课出的一个题。给定一个n*m的格子,用1*2的地毯没有重叠的去覆盖。有些格子禁止覆盖(用X表示)。问最多可以放几块这样的1*2地毯?1<=n,m<=100。

Sample Input
5 5
..X.X
.X..X
...X.
.X.XX
.....
Sample Output
7
...全文
267 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
dianyancao 2011-03-09
  • 打赏
  • 举报
回复
正解是啥呢
ccltiancai 2010-12-07
  • 打赏
  • 举报
回复
正解是啥呢
showjim 2010-10-11
  • 打赏
  • 举报
回复
没有死角的情况下不能贪心,找了一个反例
11000011
00011000
00111100
FancyMouse 2010-10-11
  • 打赏
  • 举报
回复
>我认为这个问题采用死角优先的贪心就可以解了
放心,学校内部oj上这题开到现在已经有至少2个人是这么解的了。某些小数据能过,其他小数据包括所有大数据全都wa。反例看乃能不能自己想出来。
showjim 2010-10-11
  • 打赏
  • 举报
回复
我认为这个问题采用死角优先的贪心就可以解了,解决一个死角最多只会产生一个新的死角。
绿色夹克衫 2010-10-11
  • 打赏
  • 举报
回复
果然自high了,又想错了,真丢人,鄙视一下自己。

[Quote=引用 14 楼 fancymouse 的回复:]

>又想了一下,我说的方法应该是对的
乃又自high了。这个数据:

X.XX
....
XX.X

黑白一样。俺看乃怎么填满这个连通分量。
[/Quote]
FancyMouse 2010-10-11
  • 打赏
  • 举报
回复
话说俺看到乃提到个二分图就给20分了……仔细看乃这个回答应该是5分档的XD
FancyMouse 2010-10-11
  • 打赏
  • 举报
回复
>又想了一下,我说的方法应该是对的
乃又自high了。这个数据:

X.XX
....
XX.X

黑白一样。俺看乃怎么填满这个连通分量。
绿色夹克衫 2010-10-10
  • 打赏
  • 举报
回复
又想了一下,我说的方法应该是对的,这样的话就是O(n*m)的了。二分图的话大概是O(n*m)^1.5,还是相差挺大的。
FancyMouse 2010-10-10
  • 打赏
  • 举报
回复
结贴。麻痹prelim弄了个第二,罚时比第一多了3个小时。这个要是没进regional的话虽说不正常但也只能怪自己了啊- -
二分图复杂度高个毛。俺的标程0.1秒不到就能出解。
绿色夹克衫 2010-10-10
  • 打赏
  • 举报
回复
最近杂事太多,不太适合仔细思考问题,感觉黑白染色后,按照每块联通的区域,统计黑点和白点的最小值,应该就差不多了。二分图的话,复杂度还是挺高的。
zenny_chen 2010-10-10
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 fancymouse 的回复:]

结贴。麻痹prelim弄了个第二,罚时比第一多了3个小时。这个要是没进regional的话虽说不正常但也只能怪自己了啊- -
二分图复杂度高个毛。俺的标程0.1秒不到就能出解。
[/Quote]
ライラちゃん、やっぱり凄いよね。
showjim 2010-10-09
  • 打赏
  • 举报
回复
用贪心应该可以吧
millky 2010-10-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 millky 的回复:]

这个感觉没有什么算法。直接做就是了吧。每一行从左到右扫描。
[/Quote]
我看错了,我以为1*2的意思是必须横着放,如果可以竖着放的话,那么这个题目应该是简单的动态规划了,可以用滚动数组只考虑最近的三行。
光宇广贞 2010-10-09
  • 打赏
  • 举报
回复
给我五十分。
millky 2010-10-09
  • 打赏
  • 举报
回复
这个感觉没有什么算法。直接做就是了吧。每一行从左到右扫描。
zenny_chen 2010-10-09
  • 打赏
  • 举报
回复
rairatyann, sugoi!
gnefuil 2010-10-09
  • 打赏
  • 举报
回复
相邻黑格点白格点做二分图,最大匹配
帖子不能编辑 2010-10-09
  • 打赏
  • 举报
回复
我们换一种思路。 把标记为X的点称为坏点。 看这些坏点总共可以组织多少个地毯盖上去。
比如5*5的方格中,最多可以盖13个地毯, 然后坏点总共组织了6个地毯。

计算坏点组织的地毯呢的规则是:

每个X和相邻的X总共阻止一个地毯(对角线不算), 其余的每个X各阻止一个地毯。
x642458 2010-10-09
  • 打赏
  • 举报
回复
二分图匹配
加载更多回复(1)

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧