LA Strategic Game 【最小点覆盖】
来源:互联网 发布:中国土壤数据库 编辑:程序博客网 时间:2024/05/16 14:16
题意:给定一棵树,选择尽量少的结点,使得每个没有选中的结点至少和一个已选的结点相邻
题解:只要保证每条边的两边至少有一个结点是被选中的就可以保证每个没有选中的结点至少和一个已选的结点相邻,其实就是最小点覆盖,跑一遍匈牙利算法模板即可,因为是无向图还要除以二
#include<iostream>#include<stdio.h>#include<algorithm>#include<cmath>#include<stdlib.h>#include <string.h>#include<queue>#include<set>#include<map>#include<stack>#include<time.h>using namespace std;#define MAX_N 1505#define inf 0x3f3f3f3f#define LL long long#define ull unsigned long longconst LL INF = 1e18;const int mod = 1e8+7;typedef pair<double, int>P;struct Edge{ int to, next;}edge[MAX_N*MAX_N];int head[MAX_N], tot;void init(){ tot = 0; memset(head, -1, sizeof(head));}void addedge(int u, int v){ edge[tot].to = v; edge[tot].next = head[u]; head[u] = tot++;}int linker[MAX_N];bool used[MAX_N];int uN;bool dfs(int u){ for(int i=head[u]; i!=-1; i=edge[i].next) { int v = edge[i].to; if(!used[v]) { used[v] = true; if(linker[v] == -1 || dfs(linker[v])) { linker[v] = u; return true; } } } return false;}int hungry(){ int res = 0; memset(linker, -1, sizeof(linker)); for(int u=0; u<uN; u++) { memset(used, false, sizeof(used)); if(dfs(u)) res++; } return res;}int main(){ while(cin >> uN) { int n, m; init(); for(int i=0; i<uN; i++) { scanf("%d:(%d)", &n, &m); for(int i=0; i<m; i++) { int x; scanf("%d", &x); addedge(x, n); addedge(n, x); } } cout << hungry() / 2 << endl; }}
0 0
- LA Strategic Game 【最小点覆盖】
- HDU--1054--Strategic Game【最小点覆盖】
- hdu 1054 Strategic Game 最小点覆盖
- hdu 1054 Strategic Game(最小点覆盖)
- Hdu1054 Strategic Game(最小覆盖点集)
- POJ 1463 Strategic game 最小点覆盖,树形DP
- poj 1463 Strategic game 树型dp,最小点集覆盖
- Uva 1292 - Strategic game 树形dp 最小点覆盖
- poj 1463 Strategic game(最小点覆盖树形DP)
- hdu1054 Strategic Game(最小覆盖点-树形dp)
- hdu 1054 Strategic Game 最小点覆盖集
- poj 1463 Strategic game 树的最小点覆盖
- HDU 1054 Strategic Game 二分图最小点覆盖
- hdu1054-Strategic Game (最小点覆盖,匹配问题)
- LA 2038 Strategic game(二分图最小顶点覆盖 /树形DP)
- hdu 1054 Strategic Game (最小顶点覆盖)
- hdu1054 Strategic Game (最小顶点覆盖 邻接矩阵)
- HDU 1054 Strategic Game 最小顶点覆盖
- 正向代理与反向代理有什么区别
- 【新加坡100M不限流量】ping值80,E3-8G-5IP 仅800元 机房:新加坡 CPU:E3-1230v3 8核(线程) 内存:8GB DDR3 ECC 硬盘:1TB SATA3 6GB/s
- NSIS常用的回调函数
- React-Native学习之第三方开源组件--侧滑栏----react-native-side-menu
- 简述TCP/IP协议分层模型
- LA Strategic Game 【最小点覆盖】
- rabbitmq学习之路(三)消息应答、持久化以及公平转发
- sdutacm-数据结构实验之串二:字符串匹配
- 一些很有用很 trick 的命令
- retrofit之content-type浅析
- c语言实现链表的相关的操作
- Django之模型
- 【meta】标签可以模拟一个http响应头
- sdutacm-数据结构实验之串三:KMP应用