思路:把所有涉及到的點按(x+y)的奇偶分成兩部分點,對所有的1*2的骨牌,都有(x+y)為偶數的建到奇數的邊。求一次最大匹配,就是答案。
#include#include#include
#include
#include
#define maxn 2010
using
namespace
std;
intmatch[maxn],map[maxn][maxn],vi[maxn],ny,nx,graphic[maxn][maxn];
struct
pointhori[maxn],vert[maxn];
void
init()
int dfs(int
u) }
}return0;
}int
main()
for(i=1;i<=m;i++)
nx=ny=0
;
for(i=0;i<=mx;i++)
for(j=0;j<=my;j++)
}for(i=1;i<=n;i++)
for(i=1;i<=m;i++)
memset(match,-1,sizeof
(match));
int ans=0
;
for(i=1;i<=nx;i++)
printf(
"%d\n
",ans);
}return0;
}
hdu4619 最大獨立集
題意,乙個矩陣,上面可以橫放或者豎著放骨牌 1x2 保證橫的與橫的不重疊,豎的和豎的不重疊,求拿掉最小的牌,使所有的都不重疊。分析 一看,不重疊就是沒有邊,拿最少,就是留最多,最大獨立集啊!二分圖,n m個 最大流 最大匹配 ans。簡單題。include include include inclu...
hdu 4619 Warm up 2 二分匹配)
題意 平面上有一些1 2的骨牌,每張骨牌要麼水平放置,要麼豎直放置,並且保證同方向放置的骨牌不會相互覆蓋。水平放置的牌和豎直放置的牌可能相互覆蓋,現在要移去一些牌,使得剩下的牌任何兩張都不會相互覆蓋,問桌面上最多能剩多少張牌。分析 如果把每張牌看作乙個結點,則共有兩類結點,容易聯想到二分圖。另外,同...
HDU 1179 (最大匹配)
題意 n個巫師,m個魔杖,求最大匹配 思路 二分圖 求最大匹配 ac 求 n m 的最大匹配 include include include include include includeusing namespace std const int maxn 105 bool used maxn in...