[BZOJ1596] [Usaco2008 Jan]电话网络

原创 2015年11月21日 13:50:37

传送门

http://www.lydsy.com/JudgeOnline/problem.php?id=1596

题目大意

给定一棵树,每个点可以放置一个物品覆盖这个点直接连接的点,询问最少物品数

题解

树形DP
dp[i,1]:i放物品,使i和i的子树中节点都被覆盖的最小物品数
dp[i,2]:i不放物品,使i和i的子树中节点都被覆盖的最小物品数
dp[i,3]:i不放物品,i不被覆盖,i的子树中节点都被覆盖的最小物品数
dp[i,1]=1+min(dp[son[i],1],dp[son[i],2],dp[son[i],3])
dp[i,3]=dp[son[i],2]
dp[i,2]=min(dp[son[i],1],dp[son[i],2])+dp[son[i],1]min(dp[son[i],1],dp[son[i],2])

var
 dp:array[0..10005,1..3]of longint;
 x,y:array[0..10005]of longint;
 w:array[0..20005,1..2]of longint;
 i,j,k:longint;
 a,b,c:longint;
 n,m,len:longint;
procedure init(a,b:longint);
begin
 w[len,1]:=b;
 if w[a,2]=0
 then w[a,2]:=len else w[w[a,1],2]:=len;
 w[a,1]:=len; inc(len);
end;

function min(a,b:longint):longint;
begin
 if a<b then exit(a) else exit(b);
end;

procedure dfs(a:longint);
var tt,s:longint;
begin
 x[a]:=1; tt:=w[a,2]; dp[a,1]:=1; dp[a,2]:=0; dp[a,3]:=0; s:=n;
 while tt<>0 do
  begin
   if x[w[tt,1]]=0 then begin
    dfs(w[tt,1]);
    dp[a,1]:=dp[a,1]+min(min(dp[w[tt,1],1],dp[w[tt,1],2]),dp[w[tt,1],3]);
    dp[a,2]:=dp[a,2]+min(dp[w[tt,1],1],dp[w[tt,1],2]);
    s:=min(s,dp[w[tt,1],1]-min(dp[w[tt,1],1],dp[w[tt,1],2]));
    dp[a,3]:=dp[a,3]+dp[w[tt,1],2];
   end;
   tt:=w[tt,2];
  end;
 dp[a,2]:=dp[a,2]+s;
end;

begin
 readln(n); len:=n+1;
 for i:=1 to n-1 do
  begin
   readln(a,b);
   init(a,b); init(b,a);
  end;
 dfs(1);
 writeln(min(dp[1,1],dp[1,2]));
end.
版权声明:本文为博主原创文章,未经博主允许不得转载。

[BZOJ1596][Usaco2008 Jan]电话网络(贪心||树形dp)

我们目送着那消失的飞空机云 因为太过於炫丽而想逃开 不知何时变的如此的软弱...
  • Clove_unique
  • Clove_unique
  • 2016年04月26日 08:10
  • 643

【bzoj1596】[Usaco2008 Jan]电话网络

今天看到这道题觉得很有意思谈谈自己的看法。Farmer John决定为他的所有奶牛都配备手机,以此鼓励她们互相交流。不过,为此FJ必须在奶牛们居住的N(1 ...
  • BroDrinkWater
  • BroDrinkWater
  • 2017年09月02日 22:21
  • 160

BZOJ1596 [Usaco2008 Jan]电话网络

标签:贪心,树形DP Description Farmer John决定为他的所有奶牛都配备手机,以此鼓励她们互相交流。不过,为此FJ必须在奶牛们居住的N(1 ...
  • qwerty1125
  • qwerty1125
  • 2017年10月20日 08:19
  • 219

bzoj1596 [Usaco2008 Jan]电话网络

最近刷题速度贼慢要提速了。 题意:每一个点可以标记,和这个点相邻的点都会被标记,问最少多少个标记可以标记完全图。 好经典的模型啊,我记得可以dp做,然而我选择了二分,结果后来我发现判断其实就是一个...
  • qq_35866453
  • qq_35866453
  • 2017年05月19日 21:39
  • 121

【bzoj1596】[Usaco2008 Jan]电话网络 树形dp

基础的树形dp f[x][0/1/2]表示选x/不选x x被控制/x不被控制的最小代价 f[x][0]=1+sigma{min(f[x][0],f[x][1],f[x][2])} f[x][1]...
  • u012288458
  • u012288458
  • 2016年02月13日 20:42
  • 346

[BZOJ1596][Usaco2008 Jan]电话网络(树形dp)

君子不自大其事,不自尚以功。
  • Blue_CuSO4
  • Blue_CuSO4
  • 2017年09月22日 21:19
  • 111

BZOJ1596: [Usaco2008 Jan]电话网络 树形DP

1596: [Usaco2008 Jan]电话网络 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 846  Solved: 386 [...
  • Oakley_
  • Oakley_
  • 2016年09月12日 08:08
  • 257

[Usaco2008 Jan]电话网络 贪心 or 树形DP

Farmer John决定为他的所有奶牛都配备手机,以此鼓励她们互相交流。 不过,为此FJ必须在奶牛们居住的N(1 ...
  • sdj222555
  • sdj222555
  • 2013年11月06日 18:03
  • 1506

1596: [Usaco2008 Jan]电话网络

题目链接题目大意:在树中选点,使得每个未选中的点均和选中的点相邻题解:贪心比较简单,所以用比较麻烦的树形dp搞一搞…… f[i][0]:以i为根的子树中所有点均被覆盖且不选i的最少点数(i被其儿子覆...
  • Mmh2000
  • Mmh2000
  • 2017年09月21日 08:00
  • 123

Bzoj 1596: [Usaco2008 Jan]电话网络

原题网址:http://www.lydsy.com/JudgeOnline/problem.php?id=1596 有点像“没有上司的舞会”,但因为两座塔可以距离最多为3,所以要记三种状态。f[i]...
  • MintGreenTZ
  • MintGreenTZ
  • 2016年10月30日 22:31
  • 176
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[BZOJ1596] [Usaco2008 Jan]电话网络
举报原因:
原因补充:

(最多只允许输入30个字)