Programming 板


LINE

※ [本文转录自 sorryChen 信箱] 作者: forken (forken) 标题: Re: 演算法问题 时间: Mon Apr 12 03:06:49 2010 ※ 引述《sorryChen (陈扬和)》之铭言: : (不好意思post再这里,若应该post再其他版上还请版友告知见谅) : 给定n个数选k个数使其中选中的数之间的最短距离最大化 : 就比如说一个街道上要从n个点中选k个点放垃圾桶 : 要使最近的两个垃圾桶距离最大化 : 一开始觉得这个是个简单又典型的问题 但想了两天除了一个O(n^3k)的DP方法 : 并没有什麽好的解法... 其他一些想法是..头尾都一定会选 : 如果可以随便放的话L/(k-1)的间隔距离放最好, L 为街道总长 : 所以若第二个个点大过L/(k-1)则就一定会要选 因为选的时候不会造成瓶颈 : 但若小於则不一定是最好的 因为可能会造成瓶颈... : 不知道版友们能不能指导一下 哈罗!扬和, 我是效飞, 我想这个问题应该可以在用类似 binary search 的方式 在 O(n log n) 解决, Preprocessing: 先把 n 个数 sorting into (a1, a2,..., an) Verification: 考虑如果给一个 value s, 我们要如何在 O(n) 验证是否有一种选法, 可以使得 max min {任两个选中的数} >= s? 首先 a1 一定要选,所以设 b1 := a1, 第二个数 b2 := min ai such that ai-b1>=s 第三个数 b3 := min ai such that ai-b2>=s ... 依此类推 如果到 bk 都存在,则表示{b1,...bk} 为一种选法, 可使得 max min{任两个选中的数} >= s。 反之如果某个 bi 不存在, 则表示不存在一种选法使得 max min{任两个选中的数} >= s。 Search: 我们知道如何验证是否有一种选法, 可以使得 max min{任两个选种的数} >=s, 剩下的问题就是找到最大的 s。 总共有大约 n^2 个可能的 s, 所以用 binary search 总共会有 log (n^2) = O(log n) 个 iterations, 每个 iteration 所需的验证时间是 O(n),所以总共的时间是 O(n log n)。 ------------------------------------------------------------------- 但还存在一个问题, 就是我们如何在所有可能的 s 中进行 binary search? (如果真的把所有可的 s 都列出,时间至少就是 Omega(n^2)) 这可以利用 Cartesion Sum selection 做到, 关於 Cartesion Sum selection 可以参考: "Selection in X + Y and matrices with sorted rows and columns"。 IPL, Volume 20, Issue 1, 2 January 1985, 这个方法不是很漂亮,毕竟还是利用到 cartesian sum selection, 但应该可以解决你的问题。 如果对 complexity 要求不那麽严格,也可以把所有 n^2 种 s 都列出, 做 sorting 後进行 binary search, 这样时间就变成 O(n^2 log n) --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.126.169.230 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 207.151.231.39







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP