原题网址: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. PHP 实现一个可用的redis 事务锁, 解决并发问题
  2. Hadoop 2.2.0 集群搭建
  3. Codechef SEAARC Sereja and Arcs (分块、组合计数)
  4. solr部署在tomcat下
  5. npm更换成淘宝镜像源以及cnpm
  6. 无显示器u盘安装centos_最新版 CentOS 8.1.1911 安装教程及常见问题图文详解
  7. es6 Trait修饰器
  8. leetcode238-除自身以外数组的乘积
  9. docker配置 nacos_Docker下配置nacos
  10. 读书笔记:在改变的时代改变自己
  11. 地形地貌编辑软件world mechine介绍
  12. 【cocos creater】5.仿《弓箭传说》- 创建虚拟遥感
  13. 关于webpack5打包图片不报错但是也不显示问题
  14. 郭德纲最新相声:韩国学艺
  15. Sublime Emmet 插件安装教程 Tab 快捷键无法使用问题解决
  16. 使用伪类(before,after)给元素添加分割线(|)
  17. php齐博cms,齐博CMS splitword.php后门解密
  18. python自动交易大神_Python炒股大赛 - 自动交易策略研究(0)
  19. 发两个可以装逼的网址
  20. php 不要平铺的代码,css怎么设置图片不平铺

热门文章

  1. arm linux 移植过程——uboot makefile注释
  2. Mac OS 安装PHP7
  3. 推荐5款体验较好的团队协作工具
  4. 解决各种中文乱码的方法
  5. 罗马字母和希腊字母读法(in math)
  6. 2015移动安全挑战赛(阿里看雪主办)全程回顾
  7. 高压放大器在IDE压电元件及其在仿生翼中的应用
  8. 模拟电路--一种电荷放大器的设计
  9. Swift4 2 UITextView基本用法
  10. KMP算法——很详细的讲解