POJ-1466-Girls and Boys 解题报告
来源:互联网 发布:张韶涵范玮琪 知乎 编辑:程序博客网 时间:2024/05/02 04:41
求二分图的最大独立集。题意:在大学的第二年有人开始研究男女学生之间的“浪漫”关系,所谓“浪漫”关系是在男女学生之间的,给你每个学生的编号以及他们之间的浪漫关系,请你找出一个最大的学生集合,使得这个集合里任意两个学生之间没有浪漫关系,求这个集合的学生人数。
我的解题思路:这是赤裸裸的求二分图最大独立集,根据二分图的最大独立集等于二分图的点数减去二分图的最大匹配数则可以得到答案。
我的解题代码:
#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <vector>using namespace std;#define N 501vector <int> e[N];int match[N];bool vis[N];int n;void InitRead();void DataProcess();bool Dfs(int x);int main(){ while (~scanf("%d", &n)) { InitRead(); DataProcess(); } return 0;}void InitRead(){ memset(match, -1, sizeof(match)); int x, y; for (int i=0; i<n; ++i) { e[i].clear(); scanf("%*d: (%d)", &x); while (x--) { scanf("%d", &y); e[i].push_back(y); } } return;}void DataProcess(){ int ans = 0; for (int i=0; i<n; ++i) { memset(vis, false, sizeof(vis)); if (Dfs(i)) ans++; } printf("%d\n", n - ans / 2); return;}bool Dfs(int x){ int size = e[x].size(); for (int i=0; i<size; ++i) { if (!vis[e[x][i]]) { vis[e[x][i]] = true; if (match[e[x][i]] == -1 || Dfs(match[e[x][i]])) { match[e[x][i]] = x; return true; } } } return false;}
0 0
- POJ-1466-Girls and Boys 解题报告
- pku 1466 Girls and Boys 最大独立集 解题报告
- hdu 1068 Girls and Boys 解题报告
- POJ 1466 Girls and Boys
- poj 1466 Girls and Boys
- POJ 1466 Girls and Boys
- POJ-1466-Girls and Boys
- poj 1466 Girls and Boys
- POJ 1466 Girls and Boys
- Poj--1466 Girls and Boys
- POJ 1466 Girls and Boys
- poj 1466 Girls and Boys
- poj 1466 Girls and Boys
- POJ 1466 Girls and Boys
- 【POJ】[1466]Girls and Boys
- poj 1466 Girls and Boys
- POJ 1466 Girls and Boys 二分图
- poj 1466 Girls and Boys (最大独立)
- 【学习笔记----数据结构18-图的遍历】
- 世界是数字的重点读书笔记(计算机科普知识)
- uvc摄像头代码解析2
- java自学之路-----Servlet_基础
- SQL语句优化
- POJ-1466-Girls and Boys 解题报告
- uvc摄像头代码解析3
- 云授权
- some functions about judge the String type
- 理论上最漂亮的企业门户
- 11st
- Android开源框架ImageLoader的完美例子
- uvc摄像头代码解析4
- uvc摄像头代码解析5