题目链接:https://vjudge.net/problem/UVALive-2038

题意:我看了原题,lrj的书上题意写错了,应该是最少点覆盖,当然可以用最大匹配去做,由于是树形的;

可以树形DP;

d[u][0] : u 结点 不放;

d[u][1] : u 结点放;

 #include <bits/stdc++.h>

 using namespace std;

 const int maxn =  + ;
int n;
vector<int> G[maxn]; int d[maxn][];
int p[maxn]; int dfs(int u,int fa) {
int d = G[u].size();
for(int i=;i<d;i++)
{
int v = G[u][i];
if(v!=fa)
dfs(v,p[v]=u);
}
} int dp(int cur,int f,int pa) {
if(d[cur][f]>)
return d[cur][f];
if(f==) {
d[cur][f] = ;
for(int i=;i<G[cur].size();i++) {
int v = G[cur][i];
if(v!=pa)
d[cur][f] +=min(dp(v,,cur),dp(v,,cur));
}
}
else {
for(int i=;i<G[cur].size();i++) {
int v = G[cur][i];
if(v!=pa)
d[cur][f] +=dp(v,,cur);
}
}
return d[cur][f];
} int main()
{
while(scanf("%d",&n)!=EOF) { memset(d,,sizeof(d));
for(int i=;i<n;i++)
G[i].clear();
int u,v,num;
for(int i=;i<n;i++) {
scanf("%d:(%d)",&u,&num);
for(int j=;j<num;j++) {
scanf("%d",&v);
G[u].push_back(v);
G[v].push_back(u);
}
} p[] = -;
dfs(,-);
printf("%d\n",min(dp(,,-),dp(,,-))); }
return ;
}

LA 2038 最少点覆盖的更多相关文章

  1. hdu 1150 Machine Schedule 最少点覆盖

    Machine Schedule Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php? ...

  2. LA 2038 Strategic game(最小点覆盖,树形dp,二分匹配)

    题意即求一个最小顶点覆盖. 对于没有孤立点的图G=(V,E),最大独立集+最小顶点覆盖= V.(往最大独立集加点) 问题可以变成求树上的最大独立集合. 每个结点的选择和其父节点选不选有关, dp(u, ...

  3. hdu 1150 Machine Schedule 最少点覆盖转化为最大匹配

    Machine Schedule Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php? ...

  4. LA 2038

    Bob enjoys playing computer games, especially strategic games, but sometimes he cannot find the solu ...

  5. UVA1292-----Strategic game-----树形DP解决树上的最小点覆盖问题

    本文出自:http://blog.csdn.net/dr5459 题目地址: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&a ...

  6. poj2226(最小点覆盖)

    传送门:Muddy Fields 题意:一个由r行c列方格组成的田地,里面有若干个方格充满泥泞,其余方格都是草.要用长度不限,宽度为1的长木板来覆盖这些泥方格,但不能覆盖草地.最少要用多少个长木板. ...

  7. POJ 3041 Asteroids (二分图最小点覆盖集)

    Asteroids Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 24789   Accepted: 13439 Descr ...

  8. [luoguP3231] [HNOI2013]消毒(最小点覆盖 + 状压)

    传送门 考虑贪心,控制某一维为1,另两位最大是最优的,也就是一次选一个厚度为1的面 那么对于每个点,可以有3种面是可以选到它的 然后gg 考虑二维的状态,一个平面,有些点,一次选一行或一列最优 那么每 ...

  9. hdoj--2119--Matrix(最小点覆盖)

    Matrix Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

随机推荐

  1. 打ms15-034补丁出现“此更新 不适用于您的计算机”

    1.MS15-034漏洞的补丁是KB3042553; 2.如果在一台Windows Server 2012 R2的服务器上直接安装补丁文件KB3042553,可能会出现“此更新 不适用于您的计算机”的 ...

  2. java se系列(四) 函数、数组、排序算法、二分法、二维数组

    1 函数 1.1  数的概述 发现不断进行加法运算,为了提高代码的复用性,就把该功能独立封装成一段独立的小程序,当下次需要执行加法运算的时候,就可以直接调用这个段小程序即可,那么这种封装形形式的具体表 ...

  3. 【温故知新】c#抽象类abstract与接口interface

    1.什么是抽象类 先来看MSDN对抽象类描述: 抽象类是一些留有部分或全部成员未实现的类,以便可以由派生类来提供实现. 在面向对象的编程中,抽象类用作层次结构的基类,并表示不同对象类型组的通用功能.  ...

  4. 游戏源码--Unity开源Moba游戏-服务器-客户端完整V1.0

    http://www.manew.com/thread-111658-1-1.html

  5. Java学习第十九天

    1:异常(理解) (1)程序出现的不正常的情况. (2)异常的体系 Throwable |--Error 严重问题,我们不处理. |--Exception |--RuntimeException 运行 ...

  6. 在nginx上部署django项目--------Gunicorn+Django+nginx+mysql

    一.安装nginx 以前的博客我有写,这里就不写了 http://www.cnblogs.com/wt11/p/6420442.html 二.安装mysql 我用的mysql5.7  64位的二进制包 ...

  7. JS获取鼠标位置,兼容IE FF

    由于Firefox和IE等浏览器之间对js解释的方式不一样,firefox下面获取鼠标位置不能够直接使用clientX来获取.网上说的一般都是触发mousemove事件才行.我这里有两段代码,思路都一 ...

  8. [转]微信小程序开发(二)图片上传+服务端接收

    本文转自:http://blog.csdn.net/sk719887916/article/details/54312573 文/YXJ 地址:http://blog.csdn.net/sk71988 ...

  9. C#学习笔记12

    1.在使用反射时,反射可以绕过安全访问级别(private.protected)修饰的类或属性,来获取需要的信息. 2.泛型的反射:可以使用Type.ContainsGenericParameters ...

  10. redux基本使用

    redux数据流向 基本使用