hdu 3729(二分图最大匹配+最大字典序)
来源:互联网 发布:php应用开发 编辑:程序博客网 时间:2024/06/10 03:24
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3729
解题思路:节点i对Xi~Yi之间的每一个点都连一条边,这样问题就转化成二分图的最大匹配了。字典序最大,这里可以根据匈牙利算法的特点,从n枚举到1即可。
#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn = 100005;struct node{int x,y;}a[105];int n,m,g[65][maxn];int match[maxn],res[65];bool vis[maxn];bool dfs(int u){for(int i = a[u].x; i <= a[u].y; i++){if(vis[i] == false){vis[i] = true;if(match[i] == -1 || dfs(match[i])){match[i] = u;res[u] = 1;return true;}}}return false;}void Max_Match(){int ans = 0;memset(match,-1,sizeof(match));memset(res,-1,sizeof(res));for(int i = n; i >= 1; i--){memset(vis,false,sizeof(vis));if(dfs(i)) ans++;}printf("%d\n",ans);for(int i = 1,cnt = 0; i <= n; i++)if(res[i] == 1){cnt++;if(cnt == ans) printf("%d\n",i);else printf("%d ",i);}}int main(){int t;scanf("%d",&t);while(t--){scanf("%d",&n);for(int i = 1; i <= n; i++)scanf("%d%d",&a[i].x,&a[i].y);Max_Match();}return 0;}
1 0
- hdu 3729(二分图最大匹配+最大字典序)
- hdu 3729 I'm Telling the Truth(二分图最大匹配,字典序最大输出)
- HDU - 3729 二分图最大匹配
- HDU 3729 最大二分匹配
- HDU I'm Telling the Truth (二分图最大匹配+字典序最大路径输出(好题))
- 【最大二分匹配匈牙利算法】hdu 3729
- hdu 过山车(二分图的最大匹配)
- hdu 2063 二分图—最大匹配
- HDU 1498 -- 二分图的最大匹配
- hdu 2063 二分图最大匹配
- hdu 2444 二分图判定+最大匹配
- hdu 2444 (判断二分图+最大匹配)
- HDU 2444 判断二分图+最大匹配
- hdu 1083 Courses 二分图最大匹配
- HDU 2603 过山车(二分图最大匹配)
- hdu 2444(二分图判断+最大匹配)
- hdu 1045 二分图最大匹配
- HDU 2063 过山车【二分图最大匹配】
- JavaScript小技巧
- 代码实现控件的边距
- Arctic Network--POJ(最小生成树)
- 关于对cpu的理解和kvm虚拟机到物理cpu的绑定
- Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义
- hdu 3729(二分图最大匹配+最大字典序)
- android翻译
- 组件化 资料
- nginx 后端服务器配置端口 request.getserverPort
- 【正则表达式】从字符串中提取数字
- [2016/7/28][dp]动态规划入门练习题
- Scala基础(4):数组
- 华为OJ 初级:记票统计
- 设计模式-单例模式