【bzoj1854 Scoi2010】游戏(二分图匹配)
程序员文章站
2022-05-22 13:35:27
...
题目:
题解:
二分图匹配裸题
因为每种装备用一次,就把这两个装备连在上面做匹配呗
代码:
#include <cstdio>
#include <iostream>
using namespace std;
const int N=1e6+5;
int vis[N],belong[N],tot,point[N],nxt[N*4],v[N*4];
void addline(int x,int y)
{
++tot; nxt[tot]=point[x]; point[x]=tot; v[tot]=y;
}
bool find(int x,int k)
{
for (int i=point[x];i;i=nxt[i])
if (vis[v[i]]!=k)
{
vis[v[i]]=k;
if (!belong[v[i]] || find(belong[v[i]],k))
{
belong[v[i]]=x;
return true;
}
}
return false;
}
int main()
{
int n,i,maxx=0;
scanf("%d",&n);
int x,y;
for (i=1;i<=n;i++)
{
scanf("%d%d",&x,&y);
addline(x,i); addline(y,i);
maxx=max(maxx,max(x,y));
}
for (i=1;i<=maxx;i++)
if (!find(i,i))
{
printf("%d",i-1);
return 0;
}
printf("%d",maxx);
}
上一篇: 【bzoj1854】[Scoi2010]游戏 二分图最大匹配
下一篇: BZOJ2143: 飞飞侠
推荐阅读
-
洛谷P4589 [TJOI2018]智力竞赛(二分答案 二分图匹配)
-
HDU 1281 棋盘游戏(二分图匹配)
-
POJ 1358 Housing Complexes G++ 二分图匹配 没掌握
-
POJ 1719 Shooting Contest G++ 二分图匹配 没掌握
-
loj#6033. 「雅礼集训 2017 Day2」棋盘游戏(二分图博弈)
-
[Gym 101666]E - Easter Eggs (二分 + 二分图匹配 + 找最小点覆盖(原图最大团) )
-
洛谷 P3386 【模板】二分图匹配
-
P - 奔小康赚大钱 HDU - 2255(二分图最大权完美匹配)
-
SSL1333 地鼠的困境【二分图匹配】【匈牙利算法】
-
BZOJ1059: [ZJOI2007]矩阵游戏(二分图匹配)