SRM 584 DIV1
2014-02-13 10:35
507 查看
A
简单的差分约束模型 , 因为d是定值 , 所以也可以按最短路理解 , trick是不能把圈算进去.
View Code
斯坦纳树有2部分更新:
(1) 对确定的根v , 用mask的子集更新: dp[v][mask] = min ( dp[v][submask] + dp[v][mask - submask])
本质上是寻找树最优的组合结构,不会有松弛.
(2) 对确定的根v , 用点u松弛: dp[v][mask] = min ( dp[v][mask] , dp[u][mask] + 最短路(u,v) )
简单的差分约束模型 , 因为d是定值 , 所以也可以按最短路理解 , trick是不能把圈算进去.
string s = ""; for (int i=0 ; i<(int)courseInfo.size() ; i++ ) s += courseInfo[i]; stringstream ss(s); string t; while (ss>>t) { sscanf(t.c_str(),"%c%d->%c%d:%d",&a,&da,&b,&db,&cst); int pa , pb; pa = encode((int)(a-'A'),da); pb = encode((int)(b-'A'),db); addedge(pb,pa,cst); }
View Code
斯坦纳树有2部分更新:
(1) 对确定的根v , 用mask的子集更新: dp[v][mask] = min ( dp[v][submask] + dp[v][mask - submask])
本质上是寻找树最优的组合结构,不会有松弛.
(2) 对确定的根v , 用点u松弛: dp[v][mask] = min ( dp[v][mask] , dp[u][mask] + 最短路(u,v) )
相关文章推荐
- TC SRM 584 DIV 2
- SRM 584 Div Ii Level Three: Excavations2, Dynamic Programming
- SRM 584 div1 lev3(最小树形图)
- SRM 584 Div II Level Two: Egalitarianism,DFS,BFS算法
- TC SRM 584 DIV2
- 数组上计数问题的动态规划-TopCoder-SRM584-DIV2-1000pt
- Topcoder SRM 584 DIV2 解题报告
- Topcoder SRM 584 DIV2 解题报告
- Topcoder SRM 584 DIV1 600
- SRM 584 div2
- TwoRectangles(SRM546-div2-2)
- TopCoder SRM 657 Div2 Problem 1000 - PolynomialRemainder(数学)
- srm 181 div1 1000(状压dp)
- srm 152 div1 500(简单概率计算)
- [TopCoder] SRM 587 DIV 2, 250p, 500p, 1000p, Solution
- TopCoder SRM 659 Div2 Problem 500 - PublicTransit (思维)
- topcoder srm 420 div1
- SRM 556 DIV2
- topcoder srm 435 div1
- Topcoder SRM 144 Div2 1100 (树形dp)