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


相关推荐

  • 速算的强大

    速算的强大最近 最强大脑 节目里 一个智力障碍的人展现了自己的速算才能 这事迅速火了起来 对于我们普通人来说 一个看起来十分庞大和复杂的算是到底难不难算 能不能很快报出答案 其实很早之前 我国著名数学家华罗庚在 天才与锻炼中 就介绍过速算的事 来看看吧 提问者写下一个 201 位的数 916 748 679 200 391 580 986 609 275 853 801 624 831 066 801

    2026年3月16日
    3
  • 中国经纬度范围

    中国经纬度范围全球经纬度的取值范围为 纬度 9090 经度 中国的经纬度范围大约为 纬度 3 8653 55 经度 73 66135 05 北京行政中心的纬度为 39 92 经度为 116 46 越北面的地方纬度数值越大 越东面的地方经度数值越大度分转换 将度分单位数据转换为度单位数据 公式 度 度 分 60 例如 经度 116 20 12 纬度 39 12 34 经度 116

    2026年3月19日
    2
  • 信息论:熵与互信息

    信息论:熵与互信息http blog csdn net pipisorry article details 这篇文章主要讲 熵 联合熵 jointentropy 条件熵 conditionale 相对熵 relativeentr KL 距离 互信息 mutualinform 交叉熵 crossentropy 困惑度 perplexity

    2026年3月26日
    2
  • HotPower超级CRC计算器HotWC3_V1.23

    HotPower超级CRC计算器HotWC3_V1.23http www 21ic com tools HotPower HotWC3 V1 23 html

    2026年3月17日
    2
  • 千万级敏感词过滤设计

    千万级敏感词过滤设计需求分析系统有千万级的禁词需要去过滤当中包含人名特殊符号组成的语句网址单字组合成的敏感词等等初步设计 1.解决千万级禁词存储及查找问题 2.解决被过滤文本内容过多问题详细设计 1.采用ES作为禁词库千万级数据检索时间在毫秒级满足需求 2.不适用分词器需要完整匹配分词后很多词都是合法的组合之后才是敏感词 3.被过滤文本内容分词不完整利用IK分词器分词结果不适合现…

    2022年5月30日
    44
  • 爱因斯坦题目谁养鱼_爱因斯坦的问题有哪些

    爱因斯坦题目谁养鱼_爱因斯坦的问题有哪些在一条街上,有5座房子,喷了5种颜色,每个房里住着不同国籍的人,每个人喝不同的饮料,抽不同的香烟,养不同的宠物。请问,谁养鱼?

    2022年8月6日
    8

发表回复

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

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