摘要:
这道题真是没法说,时间限制是5000ms,而且矩形数还少于5000,O(n^2)枚举即可啊!!View Code 1 program pku1468(input,output); 2 type 3 node = record 4 x1,y1,x2,y2 : longint; 5 end; 6 var 7 a : array[0..5001] of node; 8 answer,n : longint; 9 function cover(x,y :longint ):boolean;10 begin11 if (a[y]... 阅读全文
摘要:
看到这个标题后我毅然交上了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... 阅读全文