ZOJ 1364 Machine Schedule (二分图最大匹配)
来源:互联网 发布:如何做淘宝美工 编辑:程序博客网 时间:2024/05/16 06:24
解题思路:二分图最大匹配模板题 每一个任务在AB两种机器模式上连边,最小点覆盖数 = 最大匹配数
AC代码:
/* @Author: wchhlbt @Date: 2017/7/31*/#include <bits/stdc++.h>#define Fori(x) for(int i=0;i<x;i++)#define Forj(x) for(int j=0;j<x;j++)#define maxn 500#define inf 0x3f3f3f3f#define ONES(x) __builtin_popcount(x)#define _ << " " <<using namespace std;typedef long long ll ;const double eps =1e-8;const int mod = 1000000007;typedef pair<int, int> P;const double PI = acos(-1.0);int dx[4] = {0,0,1,-1};int dy[4] = {1,-1,0,0};int read(){ int num; scanf("%d",&num); return num;}int p,n;//匈牙利算法//注意给nx,ny赋值int vis[maxn];//存储每个点是否被访问过int g[maxn][maxn];//邻接矩阵int cx[maxn];//cx[i]表示最终求得的最大匹配中与xi匹配的y顶点int cy[maxn];int nx,ny;//分别存储x集合和y集合中的顶点个数int dfs(int u){ for(int v = 1; v<=ny; v++){//遍历Y集合 if(g[u][v] && !vis[v]){ vis[v] = 1; if(cy[v]==-1 || dfs(cy[v])){ cx[u] = v; cy[v] = u; return 1; } } } return 0;}int MaxMatch(){ int res = 0; memset(cx,-1,sizeof cx); memset(cy,-1,sizeof cy); for(int i = 1; i<=nx; i++){//遍历X集合 if(cx[i]==-1){ memset(vis,0,sizeof vis); res += dfs(i); } } return res;}int main(){ //freopen("test.txt","r",stdin); int n,m,k; while(~scanf("%d",&n) && n){ scanf("%d%d",&m,&k); memset(g,0,sizeof g); for(int i = 1; i<=k; i++){ int id,x,y; scanf("%d%d%d",&id,&x,&y); g[x][y] = 1; } nx = n; ny = m; int ans = MaxMatch(); cout << ans << endl; } return 0;}/*unsigned int 0~4294967295int 2147483648~2147483647unsigned long 0~4294967295long 2147483648~2147483647long long的最大值:9223372036854775807long long的最小值:-9223372036854775808unsigned long long的最大值:18446744073709551615__int64的最大值:9223372036854775807__int64的最小值:-9223372036854775808unsigned __int64的最大值:18446744073709551615*/
阅读全文
0 0
- ZOJ 1364 Machine Schedule (二分图最大匹配)
- ZOJ 1364 Machine Schedule(二分图最大匹配)
- ZOJ 1364 Machine Schedule(二分图最大匹配)
- POJ1325 Machine Schedule 二分图最大匹配
- 二分图最小覆盖点数(最大匹配):Machine Schedule
- poj - 1325 - Machine Schedule(二分图最大匹配)
- hdu1150—Machine Schedule(二分图最大匹配)
- poj1325 - Machine Schedule (二分图匹配)
- Machine Schedule 二分图最大匹配基础题
- 【二分图|最大匹配】POJ-1325 Machine Schedule
- POJ 1325 Machine Schedule (最大二分匹配)
- Machine Schedule (二分匹配)
- (杭电1150)(poj1325) Machine Schedule (二分图最大匹配)
- POJ 1325Machine Schedule(二分图最大匹配最小点覆盖)
- POJ 1325-Machine Schedule(二分图_最大匹配最小点覆盖)
- POJ 1325 Machine Schedule (最小点覆盖 && 二分图最大匹配)
- hdoj1150_Machine Schedule(二分图最大匹配)
- HDU 1150 Machine Schedule(匈牙利算法 二分图的最小顶点覆盖 二分图最大匹配)
- poj 2229 动态规划
- linux 安装jdk1.7
- 多线程下的观察者模式--Java实现
- mybatis-generator 代码自动生成工具
- 百练noi 8785:装箱问题
- ZOJ 1364 Machine Schedule (二分图最大匹配)
- 深度学习在视频动作识别应用
- 一起Talk Android吧(第三十四回:Android中的Activity六)
- 1. vue.js-饿了吗全套
- 微信小程序 animation API
- weblogic服务器闪退的问题解决
- android Error running app: This version of Android Studio is incompatible with the Gradle Plugin use
- normalize.css
- 欢迎使用CSDN-markdown编辑器