求二分圖最大匹配題。題意:有n個學生和p個課程。每個學生都能選擇任意多個課程,也可以不選擇課程。你的任務是確定是否有可能組成這樣的乙個委員會使得
1.每乙個委員會裡的學生都代表一門不同的課程(前提是這個學生選了這門課程)
2.每個課程在委員會裡都有且只有乙個代表
現在給你每個學生選擇的課程,如果能組成這樣的委員會則輸出「yes」,否則輸出「no」。
我的解題思路:求二分圖的最大匹配,如果最大匹配數等於課程數那麼輸出「yes」,否則輸出「no」。
我的解題**:
#include #include #include #include #include using namespace std;
#define n 303
int match[n];
bool vis[n];
vector e[n];
int p, n;
void initread();
void dataprocess();
bool dfs(int x);
int main()
return 0;
}void initread()
}return;
}void dataprocess()
printf("%s\n", ans == p ? "yes" : "no");
return;
}bool dfs(int x)
{ int size = e[x].size();
for (int i=0; i
POJ 1469 COURSES 完備匹配
題意 給定一些學生和課程的關係,問是否每一門課程能唯一對應乙個學生。解法 每一條邊對應乙個選擇關係,問題就是求乙個完備匹配是否存在。如下 include include include include include using namespace std intp,n char g 105 305...
poj 1469 COURSES 解題報告
題目意思 有 n 個人,p個課程,每乙個課程有一些學生參加 0個 1個或多個參加 問 能否使得 p 個課程 恰好與 p 個學生相匹配。受之前第一道匹配題 poj 1274 the perfect stall 的影響,沒有仔細體會是從哪個點匹配到哪個點,這將導致hungary 和 dfs 中 for ...
POJ 1469 排列組合的思維
題意就是說給一列序列.其順序是 1 a 2 b 26 z 27 ab.28 ac.51 az.52 bc.類似這樣.其中的字串都是每一位比前一位大.最長為vwxyz.給出乙個字串.求出其在佇列中的序列號.這道題就是用乙個排列組合.比如求 bdf 求出1位和2為總共有多少個.然後每一位就依次求出前一位...