原题网址:http://www.lydsy.com/JudgeOnline/problem.php?id=1596
有点像“没有上司的舞会”,但因为两座塔可以距离最多为3,所以要记三种状态。f[x]f[x]表示xx这个点已经放了,g[x]g[x]表示xx这个点没放但已经子树的通讯塔范围内了,h[x]h[x]表示xx这个点没放而且不在子树的通讯塔范围内。f[x]f[x]直接由每个子树三种状态取最小转移即可,g[x]g[x]由每个子树f[y]f[y]和g[y]g[y]取小的转移即可,但要注意至少要取一个f[y]f[y],h[x]h[x]直接由子树g[y]g[y]转移得。

typeedge=recordy,next:longint;end;
constINF=10001;
varmap:array[0..20050] of edge;f,g,h,first:array[0..10050] of longint;n,i,x,y,s:longint;
function min(a,b:longint):longint;begin if (a<b) then exit(a) else exit(b); end;
procedure ins(x,y:longint);begininc(s);map[s].y:=y;map[s].next:=first[x];first[x]:=s;end;
procedure dfs(x,fa:longint);vart,det,y:longint;put:boolean;beginf[x]:=1;g[x]:=0;h[x]:=0;t:=first[x];det:=INF;put:=false;while (t>0) dobeginy:=map[t].y;if (y<>fa) thenbegindfs(y,x);inc(f[x],min(min(f[y],g[y]),h[y]));if (f[y]<=g[y])thenbeginput:=true;inc(g[x],f[y]);endelsebegininc(g[x],g[y]);det:=min(det,f[y]-g[y]);end;inc(h[x],g[y]);end;t:=map[t].next;end;if (not put)then g[x]:=g[x]+det;end;
beginread(n);for i:=1 to n-1 dobeginread(x,y);ins(x,y);ins(y,x);end;dfs(1,0);writeln(min(f[1],g[1]));
end.


Bzoj 1596: [Usaco2008 Jan]电话网络相关推荐

  1. bzoj1596[Usaco2008 Jan]电话网络*

    bzoj1596[Usaco2008 Jan]电话网络 题意: 在一棵树中选最少的点建塔,使得每个点都有塔或相邻点有塔.n≤10000. 题解: 贪心.dfs时对于每个当前点,在dfs完它的所有子节点 ...

  2. BZOJ 1612: [Usaco2008 Jan]Cow Contest奶牛的比赛【Floyd】

    1612: [Usaco2008 Jan]Cow Contest奶牛的比赛 Time Limit: 5 Sec Memory Limit: 64 MB Description FJ的N(1 <= ...

  3. bzoj 1612: [Usaco2008 Jan]Cow Contest奶牛的比赛(floyd)

    1612: [Usaco2008 Jan]Cow Contest奶牛的比赛 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1153  Solved: 7 ...

  4. bzoj 1594: [Usaco2008 Jan]猜数游戏【二分+线段树】

    写错一个符号多调一小时系列-- 二分答案,然后判断这个二分区间是否合法: 先按值从大到小排序,然后对于值相同的一些区间,如果没有交集则不合法:否则把并集在线段树上打上标记,然后值小于这个值的区间们,如 ...

  5. bzoj 1596 电话网络

    Description Farmer John决定为他的所有奶牛都配备手机,以此鼓励她们互相交流.不过,为此FJ必须在奶牛们居住的N(1 <=  N <= 10,000)块草地中选一些建上 ...

  6. [BZOJ] 1614: [Usaco2007 Jan]Telephone Lines架设电话线

    1614: [Usaco2007 Jan]Telephone Lines架设电话线 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1806  Solve ...

  7. bzoj 1618: [Usaco2008 Nov]Buying Hay 购买干草(完全背包)

    1618: [Usaco2008 Nov]Buying Hay 购买干草 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1196  Solved: 62 ...

  8. bzoj 1614: [Usaco2007 Jan]Telephone Lines架设电话线(二分+SPFA)

    1614: [Usaco2007 Jan]Telephone Lines架设电话线 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1761  Solve ...

  9. bzoj 1606 [Usaco2008 Dec]Hay For Sale 购买干草(01背包)

    1606: [Usaco2008 Dec]Hay For Sale 购买干草 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1300  Solved:  ...

最新文章

  1. java signature 性能_Java常见bean mapper的性能及原理分析
  2. php读取 rss pubdate,PHP产生RSS pubDate所需日期时间格式的方法
  3. 操作系统课程设计 内核模块
  4. PyTorch随笔-3
  5. JavaFX快速入门完整代码:点击按钮显示当前系统时间示例
  6. kindeditor用法简单介绍(转)
  7. MSSqlServer基础学习01
  8. 详解谷歌官方教程 Android插件ADT 9.0.0
  9. 转iOS逆向工程:Reveal查看任意app的高级技巧!
  10. 【数据库】解剖式学习无损分解
  11. u大师u盘装系统win7_黑鲨U盘重装win7系统教程
  12. 渥太华大学计算机科学,加拿大渥太华大学计算机科学CO-OP录取
  13. 轻量级过程改进之项目计划
  14. 鲁四海解读中国大数据发展10大趋势5大挑战
  15. IMEI IMSI和ICCID
  16. 石器时代地图->魔力宝贝地图
  17. uni.getLocation(Object)获取经纬度和当前中文地址
  18. “逻辑和”与 “逻辑或”运算符
  19. 面试必备之 悲观锁与乐观锁
  20. 跨城实践中,腾讯如何应用 Apache Pulsar

热门文章

  1. Spark Core快速入门系列(5) | RDD 中函数的传递
  2. 欧文内容返回字符串php,欧文写的 phpcms代码执行过程
  3. 用计算机制作一幅画,如何用易拉罐制作一幅画
  4. 爱情公寓原版片头AE模板
  5. 如何能让英语水平在一年半载内得到大幅提升?(备注下)
  6. PTA 7-2 大炮打蚊子
  7. 7-1 打印沙漏 (20分)
  8. 【笨木头Lua专栏】基础补充07:协同程序初探
  9. 光伏电站的系统组成及工作原理
  10. ArcGIS坡度的提取