Prob_Solve 板


LINE

想试着和大家讨论看看题目 >_< http://uva.onlinejudge.org/external/126/12615.html 这题是这样的,有一个Graph,每条边都有cost 它满足四个条件: 1. 此图为连通图 2. 每个点degree至多6 3. 此图上若有cycle,则cycle大小一定为3,且任两个cycle没有共用的点 4. 所有cycle上的点degree至多4 题目要你找出一个cost总和最小的边集,满足所有不此边集的边都至少与一条边集里的边 相邻,回答最小cost即可。 嗯...喜欢玩全自己想题目的可以先看到这里...接下来我要说我目前的做法 不过我自己觉得我的方法很复杂,想问问看大家有没有想到什麽精妙的做法 ======= 这题我的直觉就是想到在Tree上做dp 但是我设计的dp在每个点上各有9个state,每次从子节点返回时进行状态转移,至多有 9*9*2*2种组合,有点多且挺复杂的 首先要注意到,根据题目条件,用dfs走访所有点後每个非root的点的back edge至多一条 ,且距离恰为2,所以每个点连出去的边至多只会影响比它稍微靠进root的两个祖先 接着,dp过程中,每个点我们都可用三种状态去表示,分别是: 0:普通的点 1:尚未与任何一条边集里的边相连且与至少一条不满足条件的边相连 2:已至少和一条边集里的边相连 由於每个点连的边至多影响两个祖先的点,所在dp时可只记录当前点与父节点的所有状态 组合,共3*3种 真正的dp过程写成psedocode会是以下这样: dp[x][state1][state2] := 只考虑点x的子树下所有当前已拜访的边和点的back edge时, 已知x点的状态是state1,已及x点的父亲的状态是state2时的最佳解 dfs(x): dp[x][i][j] := 0 when i = j = 0 dp[x][i][j] := INF otherwise 对於所有与x相邻且尚未拜访过的y: dfs(y) 把tmp[3][3] 初使化为一个值全为 INF的阵列 for i1 from 0 to 2: //i1,j1,i2,j2是枚举所有点x和y的dp状态 for j1 from 0 to 2: for i2 from 0 to 2: for j2 from 0 to 2: for s1 from 0 to 1: //s1=1代表边(x,y)在边集里 for s2 from 0 to 1://s2=1代表y有back edge且该边在边集 令st1,st2为根据枚举的条件得到的x点的新的状态(过程省略...) 若 tmp[st1][st2] > dp[x][i1][j1] + dp[y][i2][j2] + s1*(边(x,y)的cost) + s2*(y的back edge cost): 更新tmp[st1][st2]质为右式 把tmp阵列复至给dp[x]阵列 dfs end 可以任意点r当root呼叫dfs(r),最後的答案会是min(dp[r][0][0],dp[r][2][0]) 这过程真的非常复杂,由其转移的部分很容易就想错... 有没有人有更好的想法呢>_<? 此方法必须对在图上做dfs後边的可能位置有所了解,可以参考wiki http://en.wikipedia.org/wiki/Depth-first_search#Output_of_a_depth-first_search --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.233.216
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Prob_Solve/M.1421264240.A.D1E.html
1F:推 FRAXIS: 题目要求是不是要找一个maximal matching? 01/15 05:21
2F:推 DJWS: http://ppt.cc/6wKh http://ppt.cc/zkzl 观众可能比较多 01/15 07:55
3F:推 DJWS: 看起来是 edge dominating set 01/15 07:58
4F:→ DJWS: maximal matching 是 edge indepenent set 01/15 07:58
5F:→ DJWS: independent 01/15 08:01
6F:→ dreamoon: ICPC台湾参赛者交流社根本没人在讨论题目... 01/15 19:49
7F:→ dreamoon: 资讯竞赛选手新手村到是第一次看到 01/15 19:50
8F:→ dreamoon: 若把边当点,大概可以应转成一般图的最大独立集 01/15 19:53
9F:→ dreamoon: 而且每条边至多和六条边相邻 01/15 19:54
10F:→ dreamoon: 这样才真的有用到题目条件 01/15 19:54
11F:→ dreamoon: 新手村的成员都太年轻了0.0 01/15 19:55
12F:推 FRAXIS: 你的作法是不是tree decomposition? 01/15 21:44
13F:推 FRAXIS: 这个图的tree width看起来好像只有2.. 01/15 21:48
14F:推 DJWS: 若把边当点,是最小支配集。它不等於最大独立集。 01/15 22:17
15F:→ dreamoon: 抱歉说错名词 01/15 22:21
16F:→ dreamoon: 查了一下什麽是tree decomposition,看来我的做法确实 01/15 22:40
17F:→ dreamoon: 是这个东西 01/15 22:40
18F:→ dreamoon: 一般图最小支配集能做嘛? 01/15 22:41
19F:推 FRAXIS: minimum dominating set是NPC.. 01/15 22:46
20F:推 pigalan: 感觉上在这个图的BFS Tree作DP会不会比较简单? 01/29 12:19
21F:→ pigalan: 呃 不会 当我没说 =口= 01/29 12:19







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

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

TOP