hdu1150 最小点覆盖
来源:互联网 发布:软件源在哪 编辑:程序博客网 时间:2024/05/23 21:46
题目链接Machine Schedule
有A和B两个机器,每个机器有不同工作模式,有很多任务,每个任务可以自在A上以mode_i运行或者是在B上以mode_j运行,每次换mode都要重启机器
给出k个任务,要求怎么安排才能让重启次数最少
最小点覆盖:
最小覆盖要求用最少的点(X集合或Y集合的都行)让每条边都至少和其中一个点关联。可以证明:最少的点(即覆盖数)=最大匹配数
#include <iostream>#include <stdio.h>#include <memory.h>#include <vector>using namespace std;const int maxn=200+5;const int maxk=1005;int link[maxn+5];bool vis[maxk];int m,n,k;vector<int>E[maxk];int dfs(int u){ for(int i=0;i<E[u].size();i++){ int v=E[u][i]; if(!vis[v]){ vis[v]=true; if(link[v]==-1||dfs(link[v])){ link[v]=u; return 1; } } } return 0;}int hungry(){ int ans=0; memset(link,-1,sizeof(link)); for(int i=1;i<n;i++){ memset(vis,false,sizeof(vis)); ans+=dfs(i); } return ans;}int main(){ //freopen("in.txt","r",stdin); int a,b,c; while(scanf("%d",&n)!=EOF&&n){ scanf("%d%d",&m,&k); for(int i=1;i<n;i++)E[i].clear(); for(int i=0;i<k;i++){ scanf("%d%d%d",&a,&b,&c); if(b!=0&&c!=0)E[b].push_back(c); } printf("%d\n",hungry()); } return 0;}
0 0
- hdu1150 最小点覆盖
- HDU1150最小点覆盖
- hdu1150匈牙利算法最小点覆盖
- hdu1150 Machine Schedule 最小点覆盖
- hdu1150 Machine Schedule(最小点覆盖)
- HDU1150 (最小点集覆盖)
- 【HDU1150】【建模】【最小点覆盖】【二分匹配】
- hdu1150——最小点覆盖
- HDU1150:Machine Schedule(最小点覆盖)
- hdu1150 Machine Schedule 最小点覆盖
- HDU1150最小顶点覆盖
- 最小路径覆盖(最小边覆盖&&最小点覆盖)hdu1150
- hdu1150 二分图匹配的最小点覆盖
- hdu1150 最小点覆盖集的一个小小的变形
- hdu1150—Machine Schedule(最小点覆盖)
- hdu1150解题报告--也可以说小白理解最小点覆盖学习总结
- HDU1150/POJ1325_Machine Schedule(二分图/最小点覆盖=最大匹配)
- 【hdu1150】【Machine Schedule】二分图最小点覆盖+简单感性证明
- 设计模式之单例模式
- 【每日一记】设计模式——开篇
- 简易可逆加密解密算法
- js循环list 拼接字符串 删除最后一位
- 精通 CSS+DIV 网页样式与布局 53
- hdu1150 最小点覆盖
- (1)C语言图形模式的初始化和关闭
- Tomcat服务器的安装与配置
- 精通 CSS+DIV 网页样式与布局 54
- FJNU 低年级程序设计竞赛
- BZOJ3697: 采药人的路径
- JZOJ 4911. 【NOIP2017模拟12.3】人生的叹息
- 精通 CSS+DIV 网页样式与布局 55
- 简单实现动态顺序表