DES: 就是说对每个人都给你一个区间。但一个人只匹配一个数。问你满足匹配的人的序号字典序最大时的最大匹配是什么。

前几天刚做的UVALive 6322...当然是不一样的...那个要求的最大匹配的个数...求V2的最小字典序...这个呢...就是最大匹配中V1字典序最小是多少...(已晕菜)

大概理解了算法工作流程...对每一个V1中的位置...寻找匹配...直到找不到增广路算法结束...先匹配谁就可以先满足它的匹配咯...(是吗...)

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std; int n;
int g[][];
int vis[];
int link[];
int m;
int minn, maxx; int dfs(int x)
{
for (int y=minn; y<=maxx; ++y)
{
if (!vis[y] && g[x][y])
{
vis[y] = ;
if (link[y] == || dfs(link[y]))
{
link[y] = x;
return ;
}
}
}
return ;
} void search()
{
for (int x=n; x>=; --x)
{
memset(vis, , sizeof(vis));
if (dfs(x)) m++;
}
} int main()
{
int t;
cin >> t;
while(t--)
{
cin >> n;
m = ;
memset(g, , sizeof(g));
memset(vis, , sizeof(vis));
memset(link, , sizeof(link));
minn = , maxx = -; for (int i=; i<=n; ++i)
{
int x, y;
cin >> x >> y;
if (minn > x) minn = x;
if (maxx < y) maxx = y;
for (int j=x; j<=y; ++j)
{
g[i][j] = ;
}
}
search();
cout << m << endl;
int ans[];
memset(ans, , sizeof(ans));
int cnt = ; for (int x=minn; x<=maxx; ++x)
{
if (link[x] != )
{
ans[cnt++] = link[x];
}
}
sort(ans, ans+cnt);
for (int i=; i<cnt; ++i)
{
if (i != ) cout << ' ';
cout << ans[i];
}
cout << endl;
}
return ;
}

LOoK

HDU 3279 二分图最大匹配的更多相关文章

  1. hdu 1281 二分图最大匹配

    对N个可以放棋子的点(X1,Y1),(x2,Y2)......(Xn,Yn);我们把它竖着排看看~(当然X1可以对多个点~) X1   Y1 X2   Y2 X3   Y3 ..... Xn   Yn ...

  2. HDU - 2444 二分图最大匹配 之 判断二分图+匈牙利算法

    题意:第一行给出数字n个学生,m条关系,关系表示a与b认识,判断给定数据是否可以构成二分图,如果可以,要两个互相认识的人住一个房间,问最大匹配数(也就是房间需要的最小数量) 思路:要看是否可以构成二分 ...

  3. hdu 4619 二分图最大匹配 ——最大独立集

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4619 #include <cstdio> #include <cmath> # ...

  4. hdu 3729(二分图最大匹配)

    I'm Telling the Truth Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  5. hdu 4185 二分图最大匹配

    Oil Skimming Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  6. HDU:过山车(二分图最大匹配)

    http://acm.hdu.edu.cn/showproblem.php?pid=2063 题意:有m个男,n个女,和 k 条边,求有多少对男女可以搭配. 思路:裸的二分图最大匹配,匈牙利算法. 枚 ...

  7. [HDU] 2063 过山车(二分图最大匹配)

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2063 女生为X集合,男生为Y集合,求二分图最大匹配数即可. #include<cstdio> ...

  8. HDU 3829 Cat VS Dog / NBUT 1305 Cat VS Dog(二分图最大匹配)

    HDU 3829 Cat VS Dog / NBUT 1305 Cat VS Dog(二分图最大匹配) Description The zoo have N cats and M dogs, toda ...

  9. HDU 2255 奔小康赚大钱(带权二分图最大匹配)

    HDU 2255 奔小康赚大钱(带权二分图最大匹配) Description 传说在遥远的地方有一个非常富裕的村落,有一天,村长决定进行制度改革:重新分配房子. 这可是一件大事,关系到人民的住房问题啊 ...

随机推荐

  1. 20145105 《Java程序设计》实验三总结

    实验三 一.       实验内容 结对修改实验一代码,重点学习重构 二.       实验步骤 下载结伴同学的实验一代码 初始代码 进行整数.小数和负数的多组数据测试,发现一个运行错误的例子 分析后 ...

  2. 20162311 解读同伴的收获&解决同伴的问题(11月29日,周三)

    20162311 解读同伴的收获&解决同伴的问题(11月29日,周三) 解读同伴的收获 我的同组同学是20162325学号金立清同学 同组同学的收获是:递归算法的非递归实现.分治法.动态规划法 ...

  3. python_paramiko_SSHException Invalid requirement, parse error at

    不加sleep(0.5)会出现SSHException: Invalid requirement, parse error at " '' "问题,原因暂时未知. 结论如下 如果不 ...

  4. Python3基础 逻辑运算 and or not 示例

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  5. 写一个标准宏MIN,输入两个参数,返回较小的

    #define MIN(A,B) ((A) <= (B) ? (A) : (B))MIN(*p++, b)会产生宏的副作用 剖析: 这个面试题主要考查面试者对宏定义的使用,宏定义可以实现类似于函 ...

  6. JS事件监听器

    JS事件监听器 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Javasc ...

  7. Specify Computed Columns in a Table

    https://docs.microsoft.com/en-us/sql/relational-databases/tables/specify-computed-columns-in-a-table ...

  8. HDU 6073 Matching In Multiplication(拓扑排序+思维)

    http://acm.hdu.edu.cn/showproblem.php?pid=6073 题意:有个二分图,左边和右边的顶点数相同,左边的顶点每个顶点度数为2.现在有个屌丝理解错了最佳完美匹配,它 ...

  9. UVa 1471 防线

    https://vjudge.net/problem/UVA-1471 题意:给出一个序列,删除一个连续子序列,使得剩下的序列中有一个长度最大的连续递增子序列,输出个数. 思路:首先可以计算出以i结尾 ...

  10. for循环,定时器,闭包混合一块的那点事。

    1,对于一个基本的for循环,顺序输出变量值. for(var i = 1; i < 4; i++){ console.log(i);//结果不多说了吧 } 2,如果for循环中有定时器,如下代 ...