警卫安排(dp好题)

警卫安排(guard)
【题目描述】
一个重要的基地被分为 n 个连通的区域。出于某种神秘的原因,这些区域以一个区域为核心,呈
一颗树形分布。
在每个区域安排警卫所需要的费用是不同的,而每个区域的警卫都可以望见其相邻的区域,只要
一个区域被一个警卫望见或者是安排有警卫,这个区域就是安全的。你的任务是:在确保所有区域都
是安全的情况下,找到安排警卫的最小费用。
【输入格式】
第一行 n,表示树中结点的数目。
接下来的 n 行描述了n 个区域的信息,每一行包含的整数依次为:区域的标号i(0<i<=n),在
区域i 安排警卫的费用k,区域i 的子结点数目m,接下来m 个数为区域i 的子结点编号。

一开始被样例误导,样例是按照1到n的顺序来给信息的,然后我的输入也默认成这样,结果爆0了。修改过后也只过了2个点。虽然培训时讲过这题,但是不自己写一遍还真是理解不够透彻。。

F[node][1],F[node][2],F[node][3]分别表示 监控以node为根的树,在node放警卫/node被他的儿子监控/node被他的父亲监控。

F[node][1]=sum{F[node.child][3]}+cost[node];

F[node][2]比较麻烦,首先既然node被儿子管着,那么有限制“至少有一个儿子是放了警卫的”,因此先假设没有这个限制,那么F[node][2]=sum{min{F[node.child][1],F[node.child][2]}},接着枚举哪个儿子一定放了警卫,假设是编号为k的儿子,那么F[node][2]还要减去min{F[k][1],F[k][2]}再加上F[k][1];细心的读者可以发现,这样其实还不严谨,还有可能node本身也放了警卫,因此还要和F[node][1]比较一下取最小值,不过不写这个也能AC,可能多虑了吧,但是写进去至少不会错。

一开始写成F[node][3]=min{F[node][1],F[node][2]};但仔细揣摩这样是不对的。node被父亲管着,不一定要被他的儿子管着,或者他自己有警卫,比如他自己和儿子都没警卫,但是儿子的儿子有警卫也是可行的。所以只要考虑他的儿子被管住的情况,也就是F[node][3]=sum{min{F[node.child][1],F[node.child][2]}},再和F[node][1]比较取最小值。

此题不易,必须要有清晰的头脑才能把关系理清楚。

警卫安排(dp好题)

时间: 2024-12-21 01:32:30

警卫安排(dp好题)的相关文章

火车安排问题(dp好题)

火车站内往往设有一些主干线分叉出去的铁路支路,供火车停靠,以便上下客或装载货物.铁路 支路有一定长度:火车也有一定的长度,且每列火车的长度相等. 假设某东西向的铁路上,有一小站.该站只有一条铁路支路可供火车停靠,并且该铁路支路最多 能容纳 M 辆火车.为了火车行驶的通畅,该站只允许火车自东方进站,自西方出站,且先进站的火车 必须先出站,否则,站内火车将发生堵塞. 该火车站工作任务繁忙.每天都有 N 辆自东方驶向西方的火车要求在预定时刻进站,并在站内作 一定时间的停靠.为了满足每辆进站火车的要求,

快餐问题(dp好题)

Peter最近在R市开了一家快餐店,为了招揽顾客,该快餐店准备推出一种套餐,该套餐由A个 汉堡,B个薯条和C个饮料组成.价格便宜.为了提高产量,Peter从著名的麦当劳公司引进了N条 生产线.所有的生产线都可以生产汉堡,薯条和饮料,由于每条生产线每天所能提供的生产时间是有 限的.不同的,而汉堡,薯条和饮料的单位生产时间又不同.这使得Peter很为难,不知道如何安排 生产才能使一天中生产的套餐产量最大.请你编一程序,计算一天中套餐的最大生产量.为简单起见, 假设汉堡.薯条和饮料的日产量不超过100

NKOJ1472 警卫安排

P1472警卫安排   时间限制 : 10000 MS   空间限制 : 65536 KB 问题描述 一个重要的基地被分为n个连通的区域.出于某种神秘的原因,这些区域以一个区域为核心,呈一颗树形分布.在每个区域安排警卫所需要的费用是不同的,而每个区域的警卫都可以望见其相邻的区域,只要一个区域被一个警卫望见或者是安排有警卫,这个区域就是安全的.你的任务是:在确保所有区域都是安全的情况下,找到安排警卫的最小费用. 输入格式 第一行n,表示树中结点的数目.接下来的n行描述了n个区域的信息,每一行包含的

hdu 5001 walk 概率dp入门题

Description I used to think I could be anything, but now I know that I couldn't do anything. So I started traveling. The nation looks like a connected bidirectional graph, and I am randomly walking on it. It means when I am at node i, I will travel t

POJ 1155 TELE 背包型树形DP 经典题

由电视台,中转站,和用户的电视组成的体系刚好是一棵树 n个节点,编号分别为1~n,1是电视台中心,2~n-m是中转站,n-m+1~n是用户,1为root 现在节点1准备转播一场比赛,已知从一个节点传送数据到达另一个节点,电视台需要一定的费用 若可以传送数据到达用户的节点n-m+1~n,这些用户各自愿意支付一定的费用给电视台 现在电视台希望在不亏本的情况下为尽量多的用户转播比赛 输出最多可以为多少用户转播比赛 背包类型的树形DP第一题 dp[i][j]表示以节点i为根的子树有j个用户获得转播,电视

青蛙的烦恼(dp好题)

有n片荷叶正好在一凸多边形顶点上 有一只小青蛙恰好站在1号荷叶的点 小青蛙可以从一片荷叶上跳到另外任意一片荷叶上 给出N个点的坐标N<800 求小青蛙想通过最短的路程遍历所有的荷叶一次且仅一次的最短路径. 这题如果没有凸多边形的性质,就是裸的TSP问题,数据范围没法做的很大,用dp做也最多做到n=20左右,即使用更高级的退火模拟算法也只能到40左右. 但是这题的点在凸多边形上,因此有下面的性质: 青蛙遍历的路径不会相交. 证明很简单,画个图,利用三角形两边之和大于第三边即可. 结论:青蛙在1号结

POJ 2411 &amp;&amp; HDU 1400 Mondriaan&#39;s Dream (状压dp 经典题)

Mondriaan's Dream Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 12341   Accepted: 7204 Description Squares and rectangles fascinated the famous Dutch painter Piet Mondriaan. One night, after producing the drawings in his 'toilet series

URAL 1039 Anniversary Party 树形DP 水题

1039. Anniversary Party Time limit: 0.5 secondMemory limit: 8 MB Background The president of the Ural State University is going to make an 80'th Anniversary party. The university has a hierarchical structure of employees; that is, the supervisor rela

13年山东省赛 The number of steps(概率dp水题)

转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud The number of steps Time Limit: 1 Sec  Memory Limit: 128 M Description Mary stands in a strange maze, the maze looks like a triangle(the first layer have one room,the second layer have two ro