【BZOJ2595】 [Wc2008]游览计划】的更多相关文章

BZOJ2595 Wc2008 游览计划 Description Input 第一行有两个整数,N和 M,描述方块的数目. 接下来 N行, 每行有 M 个非负整数, 如果该整数为 0, 则该方块为一个景点: 否则表示控制该方块至少需要的志愿者数目. 相邻的整数用 (若干个) 空格隔开, 行首行末也可能有多余的空格. Output 由 N + 1行组成.第一行为一个整数,表示你所给出的方案中安排的志愿者总数目. 接下来 N行,每行M 个字符,描述方案中相应方块的情况: z ‘_’(下划线)表示该方…
游览计划 bzoj-2595 wc-2008 题目大意:题目链接.题目连接. 注释:略. 想法:裸题求斯坦纳树. 斯坦纳树有两种转移方式,设$f[s][i]$表示联通状态为$s$,以$i$为根的最小代价. 第一个转移就是$f[s][i]=f[t][i]+f[s-t][i]$.这个显然但是是针对边权的,这个题我们需要减掉多算的点权更新答案. 第二个转移是相同的$s$,即$f[s][i]=f[s][j]+E[i][j]$. 发现很像三角形不等式,用$spfa$转移即可. 代码2595: #inclu…
斯坦纳树板子题. 考虑状压dp,设f[i][j][S]表示当前在点(i,j)考虑转移,其所在的联通块包含的关键点集(至少)为S的答案. 转移时首先枚举子集,有f[i][j][S]=min{f[i][j][x]+f[i][j][y]-a[i][j]} (x&y=0,x|y=S). 然后考虑从点(i,j)从哪拓展而来,有f[i][j][S]=min{f[x][y][S]}+a[i][j],其中(x,y)为(i,j)的相邻点,使用spfa转移. 这里第二种转移仅在相同关键点集下进行,因为由更小点集转移…
题目链接 BZOJ2595 题解 著名的斯坦纳树问题 设\(f[i][j][s]\)表示点\((i,j)\)与景点联通状况为\(s\)的最小志愿者数 设\(val[i][j]\)为\((i,j)\)需要的志愿者数 有两种转移 一种是自己转移 \[f[i][j][s] = min\{f[i][j][e] + f[i][j][\complement_s e] - val[i][j]\}\] 一种是由周围转移过来 \[f[i][j][s] = min\{f[i][j][s] + f[x][y][s]…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2595 今天刚学了斯坦纳树,还不太会,写一道题练习一下: 参考了博客:http://www.cnblogs.com/lazycal/archive/2013/08/31/bzoj-2595.html 代码也是模仿着写的,感觉有了更深的理解: 总之,大概就是两种转移方式,合并转移枚举子集即可,最短路转移用 spfa: 还要记录一个 pre 用来找到连通块内的点: 用哈希一样的方法把几个数 pa…
Description Input 第一行有两个整数,N和 M,描述方块的数目. 接下来 N行, 每行有 M 个非负整数, 如果该整数为 0, 则该方块为一个景点:否则表示控制该方块至少需要的志愿者数目. 相邻的整数用 (若干个) 空格隔开,行首行末也可能有多余的空格. Output 由 N + 1行组成.第一行为一个整数,表示你所给出的方案中安排的志愿者总数目. 接下来 N行,每行M 个字符,描述方案中相应方块的情况: z  '_'(下划线)表示该方块没有安排志愿者: z  'o'(小写英文字…
话说挺早就写过斯坦纳树了,不过当时没怎么总结,也不是很理解……现在来个小结吧~ 斯坦纳树就是包含给定点的最小生成树(个人理解权值应当为正). 一般来讲,给定点的数目应该很小吧...于是我们可以用状压DP来解决. 需要2个方程: f[st][i]表示连通性至少为st,且经过i点的最小距离 方程1.f[st][i] = Min{f[s][i] + f[st - s][i]}(s为st的子集) 方程2.f[st][i] = Min{f[st][j] + w(i,j)}(i,j之间有边相连) 这里大家可…
斯坦纳树是在一个图中选取某些特定点使其联通(可以选取额外的点),要求花费最小,最小生成树是斯坦纳树的一种特殊情况 我们用dp[i][j]来表示以i为根,和j状态是否和i联通,那么有 转移方程: dp[i][j]=min(dp[i][s]+dp[j-s]-a[i][j]) (表示有两个状态s和j-s都和i联通,我们把这两个状态联通起来,这样多算了一次a[i][j],减去即可) dp[i][j]=min(dp[i][j],dp[k][j]+a[i][k]) (如果i和k连着,那么,链接i和k,更新d…
Time Limit: 10 Sec  Memory Limit: 256 MBSec  Special JudgeSubmit: 2030  Solved: 986[Submit][Status][Discuss] Description Input 第一行有两个整数,N和 M,描述方块的数目. 接下来 N行, 每行有 M 个非负整数, 如果该整数为 0, 则该方块为一个景点:否则表示控制该方块至少需要的志愿者数目. 相邻的整数用 (若干个) 空格隔开,行首行末也可能有多余的空格. Outpu…
BZOJ2595 [Wc2008]游览计划 Solution 考虑这是一个最小费用连通性的问题,既然大家都说这是什么斯坦纳树那就是的吧... 所以我们肯定可以这样设一个dp状态: \(dp_{i,j,k}\)表示经过点(i,j)且现在连通性为\(k\)的最小费用. 有两种转移方程: \(dp_{i,j,k}=dp_{i,j,s}+dp_{i,j,k-s}-a[i][j];\) \(dp_{i,j,k}=dp_{x,y,k}+a[i][j]\) 这个还是比较显然? 发现后面那个东西很像最短路不是吗…