博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dp uva1218
阅读量:4632 次
发布时间:2019-06-09

本文共 842 字,大约阅读时间需要 2 分钟。

一共有三种状态: 
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])+1d[u][1]=∑d[v][2]d[u][2]=min(d[u][1]−d[v][2]+d[v][0])

1 #include 
2 using namespace std; 3 4 const int maxn = 1e4+5; 5 const int INF = 1e9; 6 7 vector
G[maxn],vertices; 8 int p[maxn],d[maxn][3]; 9 10 void dfs(int u,int fa){11 vertices.push_back(u);12 p[u] = fa;13 for(int i=0; i
=0; i--){33 int u = vertices[i];34 d[u][0] = 1; d[u][1] = 0;35 for(int i=0; i
INF) d[u][0] = INF;41 if(d[u][1]>INF) d[u][1] = INF;42 }43 44 d[u][2] = INF;45 for(int i=0; i

 

转载于:https://www.cnblogs.com/yxg123123/p/6827742.html

你可能感兴趣的文章
Tornado 类与类组合降低耦合
查看>>
2009 Competition Highlights by ICPC Live
查看>>
ssh远程操作服务器
查看>>
树莓派Android Things物联网开发:创建一个Things项目
查看>>
GIT使用方法
查看>>
第三阶段 10_JavaWeb基础_
查看>>
裁员浪潮,互联网人该何去何从?
查看>>
Python Day 01
查看>>
Android5.0之CoordinatorLayout的使用
查看>>
U盘安装Ubuntu14.4时遇到分区问题记录
查看>>
servlet工作原理解析
查看>>
api工程IOS学习:在IOS开发中使用GoogleMaps SDK
查看>>
函数功能MATLAB
查看>>
Bzoj1123 Blockade
查看>>
Python之Mysql及SQLAlchemy操作总结
查看>>
数据库搜索与索引
查看>>
python3 面向对象(一)
查看>>
配件商城项目总结
查看>>
关于变量名前面加m的问题
查看>>
腾讯Bugly异常崩溃SDK接入
查看>>