Programming 板


LINE

※ 引述《makiyolove (暴力熊)》之铭言: : 在网路上看到的题目 : DNA序列是由A、T、C、G组成一串字串序列 : 举例:agGCTGCAatGACAGTTGGG : 然後找出大於使用者输入长度L : 包含C、G密度最高的序列串 : 此题解应输出gGCTGC (假设L=5) : 我只有想到用暴力法 : 列出每一种组合 计算密度 比较大小 再输出 : 应该有更快的方法可以用? : 恳请板友指教 想到一个作法,不确定有没有问题,欢迎大家讨论 step.1 假设此字串序列是s,长度是k, 先开一个同样大小的阵列c[k],纪录C、G出现的累积次数 s: a g G C T G C A a t G A C A G T T G G G c: 0 1 2 3 3 4 5 5 5 5 6 6 7 7 8 8 8 9 10 11 step.2 找出的序列长度要大於L,所以长度最小是 L' = L+1 计算长度是L'的序列中,包含C、G的数量 (因为长度一样,所以C、G次数越多的密度越高) c'[x]=c[x]-c[x-(L'+1)]; s: a g G C T G C A a t G A C A G T T G G G c: 0 1 2 3 3 4 5 5 5 5 6 6 7 7 8 8 8 9 10 11 c': - - - - - 4 5 4 3 2 3 2 2 2 3 3 2 3 3 4 ^ step.3 把c'扫过一遍找出最大值(范例中的5) 所以 s': aGCTGC 是长度为L'的序列中密度最高的 step.4 再从此序列的头尾开始扩张, 如果相邻的是C、G,将其加入此序列s' 往前找到第一个不为C、G的就停止 往後也是找到不是C、G的就停 假设s'长度是m,其中C、G的数量是n,则密度是 n/m 如果隔壁的是C or G,加入後密度变成 (n+1)/(m+1) 如果隔壁的不是C、G,加入後密度变成 n/(m+1) 因为 n/(m+1) < n/m < (n+1)/(m+1) 这样就可以找到密度最高的序列 但是还要再考虑到step.3最大值不只一个时,序列重叠的情况 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.116.204.36 ※ 编辑: MisterSmile 来自: 122.116.204.36 (05/30 14:13)
1F:推 march20:这 greedy 似乎成立: 如果多看一些会让 66.75.255.220 05/30 18:32
2F:推 march20:密度变大, 那表示有一边密度本来就比较大 66.75.255.220 05/30 18:32
3F:推 march20:那这边没道理不被选到 @@ 66.75.255.220 05/30 18:33
※ 编辑: MisterSmile 来自: 122.116.204.36 (05/31 14:32)
4F:推 seanwu:反例: CCCTTTCCC L=4 210.70.137.244 06/02 08:07
5F:→ seanwu:step 3中找到的,是CCCTT或TTCCC 210.70.137.244 06/02 08:07
6F:→ seanwu:这样找到的答案是 3/5=0.6 210.70.137.244 06/02 08:08
7F:→ seanwu:但最大的应该是 6/9 = 0.667 210.70.137.244 06/02 08:08
8F:→ seanwu:而且step 4中不论是CCCTT或TTCCC都无法扩张 210.70.137.244 06/02 08:09
9F:推 march20:(还没验证)我找反例找很久, 总是差一个@@ 66.75.255.220 06/02 13:04
10F:推 march20:太强啦 XD 66.75.255.220 06/02 13:05
※ 编辑: MisterSmile 来自: 122.116.204.36 (06/02 23:52)
11F:→ MisterSmile:真的有反例,被抓到破绽XD 122.116.204.36 06/03 00:30







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灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP