摘要:
看到这个标题后我毅然交上了CTSC的树形DP,WA的结果不言而喻,囧仔细读题后有两种思路:1.把每个课程拆成两个点,对于时间发生矛盾的课之间(i‘-->j)(i-->j')下面应该是一个最大独立集问题了,点数减匹配数即可这个思路没有实践,如果有错,请指出。2.很多人都用这种方法,二分图一边是84个时间点,另一边是课程,连边之后求最大匹配即可View Code 1 program pku2239(input,output); 2 var 3 f : array[0..100,0..301] of boolean; 4 lk : array[0..301] of longint 阅读全文
摘要:
这道题目就没有1274那么阴人,学生一边,课程一边,构造二分图,看最大匹配是否等于m就可以了View Code 1 program pku1469(input,output); 2 var 3 f : array[0..101,0..301] of boolean; 4 lk : array[0..301] of longint; 5 v : array[0..301] of boolean; 6 n,m,p,k : longint; 7 procedure init; 8 var 9 i,j,x,y : longint;10... 阅读全文
摘要:
有n头牛,m个牛栏,其中每头牛都有自己愿意去的牛栏,求牛和牛栏的最大匹配。简单的二分图裸题,居然调了1节课,数据会阴人啊!!每行第一个数是说这一行接下来有多少个数,可是这些数完了这一行还有数,用read就悲催了!View Code 1 program pku1274(input,output); 2 var 3 f : array[0..301,0..301] of boolean; 4 v : array[0..301] of boolean; 5 lk : array[0..301] of longint; 6 n,m : longint; 7 proc... 阅读全文