免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 11129 | 回复: 2
打印 上一主题 下一主题

[练习] 合并 [复制链接]

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-11-26 01:25 |只看该作者 |倒序浏览
挑一些运动量小的练习练习~{:3_188:}
合并
from:

0 0 1 0 0 1 0 0
1 0 0 0 0 0 0 1
0 0 1 0 0 1 0 1
0 1 0 0 0 1 0 0
1 0 0 0 0 0 0 0
0 0 1 1 0 1 1 0
1 0 1 1 0 1 1 0
0 0 0 0 1 0 0 0
0 0 1 0 0 0 1 0
0 0 1 1 1 1 1 1

to:
0 0 1 0 0 2 0 0
3 0 0 0 0 0 0 4
0 0 5 0 0 6 0 4
0 5 0 0 0 6 0 0
5 0 0 0 0 0 0 0
0 0 7 7 0 7 7 0
8 0 7 7 0 7 7 0
0 0 0 0 7 0 0 0
0 0 9 0 0 0 9 0
0 0 9 9 9 9 9 9

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
2 [报告]
发表于 2013-11-26 01:38 |只看该作者
本帖最后由 rubyish 于 2013-11-27 20:43 编辑

v2:{:3_188:}
  1. #!/usr/bin/ruby -w
  2. nteam     = 1
  3. hregister = Hash.new {|h, k| h[k] = [] }
  4. hdata     = Hash.new {|h, k| h[k] = Hash.new 0 }

  5. DATA.each_with_index do |l, i|
  6.   l.split.each_with_index do |e, j|
  7.     e == ?0 and hdata[i][j] = 0 and next
  8.     *asite = [i, j-1], [i-1, j-1], [i-1, j], [i-1, j+1]
  9.     nbuddy, ngang = asite.reject {|r| r[0] < 0 }.
  10.       map {|x, y| hdata[x][y] }.reject(&:zero?).uniq.sort
  11.     nbuddy ||= ( nteam += 1 ) - 1
  12.    
  13.     [[i, j], *hregister[ngang]].each do |a, b|
  14.       hdata[a][b] = nbuddy
  15.       hregister[nbuddy] << [a, b]
  16.     end
  17.     hregister.delete ngang
  18.   end
  19. end

  20. hregister.each_with_index do |r, i|
  21.   r[1].each {|x, y| hdata[x][y] = i + 1 }
  22. end

  23. hdata.each_value {|v| puts v.values * ?\s }

  24. __END__
  25. 0 0 1 0 0 1 0 0
  26. 1 0 0 0 0 0 0 1
  27. 0 0 1 0 0 1 0 1
  28. 0 1 0 0 0 1 0 0
  29. 1 0 0 0 0 0 0 0
  30. 0 0 1 1 0 1 1 0
  31. 1 0 1 1 0 1 1 0
  32. 0 0 0 0 1 0 0 0
  33. 0 0 1 0 0 0 1 0
  34. 0 0 1 1 1 1 1 1
复制代码

论坛徽章:
3
寅虎
日期:2013-11-27 07:53:29申猴
日期:2014-09-12 09:24:152015年迎新春徽章
日期:2015-03-04 09:48:31
3 [报告]
发表于 2013-11-26 20:39 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP