题意:
给出一个树形的计算机网络,选取其中给一部分作为服务器,要求非服务器的计算机,相邻有且只有一个服务器,问最少选择几个服务器。

思路:
这题不看书,我感觉我目前是做不出来的….又回到看题解过题时代…..Orz
一共有三种状态:
1、d[u][0]:u是服务器,每个子结点可以是也可以不是。
2、d[u][1]:u不是服务器,但u的父亲是,u的子结点都不是服务器。
3、d[u][2]:u和u的父亲都不是服务器,u的子结点恰有一个是服务器。

三种状态的转移:
d[u][0]=∑min(d[v][0],d[v][1])+1。
d[u][1]=∑d[v][2]。
d[u][2]=min(d[u][1]−d[v][2]+d[v][0])

前两个都很理解,d[u][2]这个转移可以画一个图理解一下..

#include<bits/stdc++.h>
using namespace std;
template<int N,int M>//N点的个数,M边的个数
struct Graph
{int top;struct Vertex{int head;}V[N];struct Edge{int v,next;}E[M];void init(){memset(V,-1,sizeof(V));top = 0;}void add_edge(int u,int v){E[top].v = v;E[top].next = V[u].head;V[u].head = top++;}
};const int N=10000;
Graph<N+10,N*2+10> g;
int n,dp[N+10][3];
void dfs(int u,int f){dp[u][0]=1;dp[u][1]=0;for(int i=g.V[u].head;i!=-1;i=g.E[i].next){int v=g.E[i].v;if(v==f) continue;dfs(v,u);dp[u][0]+=min(dp[v][0],dp[v][1]);dp[u][1]+=dp[v][2];}dp[u][2]=n;for(int i=g.V[u].head;i!=-1;i=g.E[i].next){int v=g.E[i].v;if(v==f) continue;dp[u][2]=min(dp[u][2],dp[u][1]-dp[v][2]+dp[v][0]);}
}int main(){while(scanf("%d",&n)){g.init();for(int i=0;i<n-1;i++){int a,b;scanf("%d%d",&a,&b);g.add_edge(a,b);g.add_edge(b,a);}dfs(1,-1);printf("%d\n",min(dp[1][0],dp[1][2]));scanf("%d",&n);if(n==-1) break;}
}

Uva1218 Perfect Services相关推荐

  1. [UVA-1218] Perfect Service(树的最小支配集)

    题目链接:https://vjudge.net/problem/UVA-1218 题目大意:给你一棵无向树,让你求树的最小支配集,但是有一个要求是除最小支配集外剩下的任何一个结点不能同时连接支配集中的 ...

  2. 【转】翻译中的黄金词组

    一.政治类: 1. 日益昌盛 become increasingly prosperous 2. 快速发展 develop rapidly 3. 隆重集会 gather ceremoniously 4 ...

  3. 【雅思备考】听说读写攻略 | 雅思核心词汇之科技类

    文章目录 一.雅思考试流程和真题使用 1.1 考试流程 1.2 真题使用 1.3 考试模式 二.阅读题型 三.听力题型 题型一 完成填表/记笔记/流程图/总结 题型二 选择题 题型三 填空题 题型四 ...

  4. 亚马逊aws深度学习_AWS速查表:Amazon Web Services入门时首先要学习的5件事

    亚马逊aws深度学习 AWS has taken the tech community by storm. It's easily sold as one of the most reliable p ...

  5. sql2012 ssrs_您必须在SQL Server Reporting Services(SSRS)中记录的十件事

    sql2012 ssrs Documentation is never fun. I curse having to do it and I curse the person who didn't d ...

  6. Silverlight 4 - MVVM with Commanding and WCF RIA Services

    In my previous post I wrote about "WCF RIA Services and a guide to use DTO/"Presentation M ...

  7. 详解Axis2实现Web Services之AXIOM篇

    AXIOM--AXis 对象模型(AXis Object Model,AXIOM)是 Apache Axis 2 的 XML 对象模型,Axiom采用pull解析方式,基于StAX(JSR173),其 ...

  8. The listener supports no services

    记录一个重启服务器后Oracle启动监听服务报错:The listener supports no services 原因:数据库实例没有注册到listener 解决办法:在listener.ora里 ...

  9. java datahandler_Java Web Services:使用DataHandler类发送文件

    我是 Java Web Services的新手,所以我可能做错了. 我正在尝试使用DataHandler传输文件 – 这就是我所拥有的: 网络服务: import java.net.Malformed ...

最新文章

  1. slider_wap
  2. Editplus查找替换的正则表达式应用说明
  3. Python基于OpenCV的人脸检测
  4. at24c16如何划分出多个读写区_读写AT24C02,并用1602显示
  5. React Hooks 完全使用指南
  6. Linux学习十七、正规表达式练习题
  7. 开发过程中任何一个时刻,只关注解决当前面临的问题。
  8. pytorch nn.Softmax
  9. 变量的存在意义和底层逻辑(《Java与Python学习通法》)
  10. 百度统计、谷歌统计原理以及自定义统计源码
  11. 为什么不能用赋值语句将一个字符串常量直接赋给一个字符数组?
  12. java tapestry_Java Web 框架 Tapestry
  13. go牛刀小试:go的打点器ticker,可停止
  14. 最长公共子序列_使用序列化查找对象中的脏字段
  15. 10款最佳的Linux文件比较工具
  16. Smart Jump
  17. 《17天搞定GRE单词》
  18. 一个酷炫的,动态交互网页的桌面。
  19. Cloud Native 与12-Factor
  20. oc中不同方式实现锁

热门文章

  1. 【时序】M4竞赛冠军方案:一种用于时间序列预测的指数平滑和递归神经网络的混合方法
  2. C语言题解:谁是凶手!
  3. DVWA-Reflected XSS
  4. JAVA版村庄哨塔种子_我的世界:5个奇特且罕见的种子,相邻的哨塔,循环的地形图...
  5. 微信公众号开发者接入
  6. MBT测试实例:做个“机器人”,使其随机、持续的对“web页面”做交互性测试(二)涉及工具
  7. 《 FreeSWITCH权威指南》——1.2 电话实现技术
  8. MySQL复制(三) --- 高可用性和复制
  9. DIV简单个人静态HTML网页设计作品 WEB静态个人介绍网页模板代码 DW个人网站制作成品 期末网页制作与实现
  10. 99行不用指针 c语言贪食蛇,小白99行C代码编写经典游戏贪吃蛇(多关版本)