主要是main()中的處理,接下來就是二分匹配的模板題了
#include#include#define maxn 110
using
namespace
std;
inta[maxn][maxn],link[maxn];
intb[maxn],c[maxn];
bool
vis[maxn];
intn,m,cnt,ans,t;
bool find(int
x) }
}return0;
}int
main()
//cnt表示需要床位的學生人數
for(int i=1;i<=n;i++)
if(b[i]&&!c[i])//
自己是本校生而且自己不回家,那麼自己可以睡自己的床
a[i][i]=1
; }
for(int i=1;i<=n;i++)
if(ans==cnt) printf("
^_^\n
");
else printf("
t_t\n");
}return0;
}
ZJOI2009 假期的宿舍
題目描述 學校放假了 有些同學回家了,而有些同學則有以前的好朋友來探訪,那麼住宿就是乙個問題。比如 a 和 b 都是學校的學生,a 要回家,而 c 來看b,c 與 a 不認識。我們假設每個人只能睡和自己直接認識的人的床。那麼乙個解決方案就是 b 睡 a 的床而 c 睡 b 的床。而實際情況可能非常複...
ZJOI2009 假期的宿舍
這道題分析下就會發現是乙個二分圖匹配。將在校 包括來校訪友 和床單構成圖,判斷最大匹配數是否為總在校人數即可。這裡用的是 km 演算法。1 include 2 3using namespace std 45 define re register 6 define rep i,a,b for re i...
ZJOI2009 假期的宿舍
題目 洛谷p2055 bzoj1433 codevs2347。題目大意 有n個人,有些人是學生,有些人是來看學生的 不是學生 學生有床,而非學生沒有 廢話!有些學生回家,有些學生晚上住校,來看學生的人要住在學校裡。現在有一些認識的關係,規定每個要在學校睡覺的人只會睡在自己認識的人的床上,問能否使所有...