SPOJ PT07X Vertex Cover(树形dp)
来源:互联网 发布:linux rsync 相互同步 编辑:程序博客网 时间:2024/06/06 05:43
题目链接:
SPOJ PT07X Vertex Cover
题意:
一个无向无环图,给
数据范围:
分析:
对于节点
状态转移方程:
需要在
#include <stdio.h>#include <string.h>#include <algorithm>#include <math.h>using namespace std;typedef long long ll;const int MAX_N = 100010;int n, total;int head[MAX_N], dp[MAX_N][2], vis[MAX_N];struct Edge { int to, next;}edge[MAX_N * 2];inline void AddEdge(int from, int to){ edge[total].to = to; edge[total].next = head[from]; head[from] = total++;}void dfs(int u, int p){ if (vis[u]) return; vis[u] = 1; dp[u][1] = 1, dp[u][0] = 0; for (int i = head[u]; i != -1; i = edge[i].next) { int v = edge[i].to; if (v == p) continue; dfs(v, u); dp[u][0] += dp[v][1]; dp[u][1] += min(dp[v][1], dp[v][0]); }}int main(){ while (~scanf("%d", &n)) { memset(head, -1, sizeof(head)); total = 0; for (int i = 1; i < n; ++i) { int u, v; scanf("%d%d", &u, &v); AddEdge(u, v); AddEdge(v, u); } memset(vis, 0, sizeof(vis)); dfs(1, 0); printf("%d\n", min(dp[1][0], dp[1][1])); } return 0;}
0 0
- SPOJ PT07X Vertex Cover(树形dp)
- SPOJ 1435 - Vertex Cover(树形DP,树的最小点覆盖)
- spoj1435 - Vertex Cover(贪心or树形dp)
- SPOJ 1435. Vertex Cover
- Vertex Cover
- Vertex Cover
- Vertex Cover
- set cover和vertex cover
- 【bzoj2616】SPOJ PERIODNI 树形DP
- 【bzoj2616】SPOJ PERIODNI 树形DP
- Vertex Cover问题
- vertex cover approximate algorithm
- SCU4439-Vertex Cover
- SCU-4439-Vertex Cover
- HDU6150 Vertex Cover
- 【HDU6150】Vertex Cover (构造)
- hdu 6150 Vertex Cover
- 1134. Vertex Cover (25)
- String字符串操作<一>
- 机器学习面试问题10
- 奇怪的问题--load file导入数据后发现多了一个字符,三个字节
- Windows 任务管理器中的几个内存概念
- 关于HTML面试题汇总之H5
- SPOJ PT07X Vertex Cover(树形dp)
- C#控制台 输出hello world之 用抽象类的抽象方法输出
- poj1065 Wooden Sticks(没有交集元素的lis的条数)
- POJ 1861-Network(最小生成树-Kruskal)
- jquery-highlight.js高亮显示
- 献给Android初学者的书单
- UVA-Proving Equivalences La 4287
- Java子类型的赋值
- GZIP压缩原理分析(30)——第五章 Deflate算法详解(五21) 动态哈夫曼编码分析(10)构建哈夫曼树(02)