HDU ACM 1054 Strategic Game 二分图最小顶点覆盖?树形DP「建议收藏」

HDU ACM 1054 Strategic Game 二分图最小顶点覆盖?树形DP

大家好,又见面了,我是全栈君。

分析:这里使用树形DP做。

1、最小顶点覆盖做法:最小顶点覆盖 == 最大匹配(双向图)/2。

2、树形DP:
dp[i][0]表示i为根节点,而且该节点不放,所需的最少的点数。
dp[i][1]表示i为根节点,而且该节点放,所须要的最少的点数。

dp[i][0]=sum(dp[son[i][j]][1]) 该点不放。则它的儿子节点必须都放,仅仅有这样之间的边才干够被覆盖。
dp[i][1]=sum(min(dp[son[i][j]][0],dp[son[i][j]][1])) 该点放的话,则它的儿子节点有两种决策。放或不放,取min就可以。

#include<iostream>
#include<vector>
#include<limits.h>
using namespace std;

#define N 1505
int dp[N][2];    //dp[i]表示以i为根节点时所须要的最小点数
int f[N];        //用来记录父节点
vector<int> son[N]; //记录儿子节点

int min(int x,int y)
{
	return x<y?

x:y;}int dfs(int pos,int v){ int sum,i; if(dp[pos][v]!=INT_MIN) return dp[pos][v]; sum=v; for(i=0;i<son[pos].size();i++) if(v==1) //当前节点选 sum+=min(dfs(son[pos][i],0),dfs(son[pos][i],1)); else sum+=dfs(son[pos][i],1);//当前节点不选,子节点必选 dp[pos][v]=sum; return sum;}int main(){ int ans,n,i,x,m,j,t; while(scanf("%d",&n)==1) { for(i=0;i<n;i++) { son[i].clear(); f[i]=i; dp[i][0]=dp[i][1]=INT_MIN; } for(i=0;i<n;i++) { scanf("%d:(%d)",&x,&m); for(j=0;j<m;j++) { scanf("%d",&t); son[x].push_back(t); f[t]=x; } } for(i=0;i<n;i++) if(f[i]==i) //找到根节点 { ans=min(dfs(i,0),dfs(i,1)); break; } printf("%d\n",ans); } return 0;}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116417.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月21日 下午6:00
下一篇 2022年1月21日 下午6:00


相关推荐

  • 外汇mt4和mt5的区别_鑫圣金业mt4平台下载

    外汇mt4和mt5的区别_鑫圣金业mt4平台下载这两个交易平台之间存在巨大差异。让我们看看它们之间的显着差异。那么让我们看看mt4与mt5之间的差异。mt4和mt5的下载方式差别不大,都可以在https://www.qiejf.cn/下载和安装。主要是在功能上有区别,下面详细来讲解一下。MT4和MT5交易平台的区别:  MT4仅提供外汇交易,但另一方面,MT5使交易者可以访问货币以外的差价合约、股票和期货。  这取决于交易者决定交易什么,并在此基础上,他们可以选择他们的交易平台。MT4始终是我的首要任务。它简单、灵活,让我能够根据自

    2022年8月15日
    5
  • awvs14中文版激活成功教程版_awvs14激活成功教程版

    awvs14中文版激活成功教程版_awvs14激活成功教程版0x01AWVS更新介绍AWVS14.7.220228146更新于2022年3月1日,此次更新更新.NETIAST传感器(AcuSensor)现在可以安装在Windows上的.NETCorev3和v5上(使用Kestrel服务器)等等。注:附含Win/Linux/Mac安装包及激活成功教程说明0x02AWVS更新详情新特性.NETIAST传感器(AcuSensor)现在可以安装在Windows上的.NETCorev3和v5上(使用Kestrel服务器)Acunetix扫描仪

    2026年2月18日
    6
  • 阿里开源20B图像生成模型Qwen-Image,支持生图和编辑!

    阿里开源20B图像生成模型Qwen-Image,支持生图和编辑!

    2026年3月13日
    2
  • HttpEntity的使用

    HttpEntity的使用nbsp HttpEntity 实体即可以使流也可以使字符串形式 具体有什么用法看他的方法解释 package nbsp com scl base nbsp nbsp nbsp nbsp import nbsp java io IOException nbsp nbsp import nbsp java io UnsupportedE nbsp nbsp nbsp nbsp import nbsp org apache http HttpEntity nbsp nbsp impo

    2026年3月18日
    1
  • Unity零基础到入门 ☀️| 万字教程 对 Unity 中的 Navigation导航系统基础 全面解析+实战演练【收藏不迷路】[通俗易懂]

    Unity零基础到入门 ☀️| 万字教程 对 Unity 中的 Navigation导航系统基础 全面解析+实战演练【收藏不迷路】[通俗易懂]导航系统。导航系统,顾名思义,就是游戏中的一个寻路功能。本文对Unity中的导航Navigation系统做了一个详细的说明,包括案例和效果展示!请品尝!

    2022年7月22日
    12
  • Python——ZipFile操作压缩文件[通俗易懂]

    Python——ZipFile操作压缩文件[通俗易懂]python3中zipfile模块用法zipfile是python里用来做zip格式编码的压缩和解压缩的,由于是很常见的zip格式,所以这个模块使用频率也是比较高的,在这里对zipfile的使用方法做一些记录。即方便自己也方便别人。zipfile里有两个非常常用的class,分别是ZipFile和ZipInfo,在绝大多数的情况下,我们只需要使用这两个class就可以了。…

    2025年12月15日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号