摘要: 堆,不解释。题意在讨论里面有。View Code 1 #include <cstdio> 2 #include <cstdlib> 3 #include <algorithm> 4 #include <cstring> 5 using namespace std; 6 struct HEAP 7 { 8 int p,id,px; 9 }h[10010],tmp;10 int t,size;11 inline bool cmp(const HEAP &a,const HEAP &b)12 {13 if(a.px==b.px) ret 阅读全文
posted @ 2012-09-01 21:38 proverbs 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 题意:有2n把钥匙,每2个一组,给你每组的钥匙信息,并且每组的钥匙只能用一个。有m个门,每个门有2个锁,只要打开一个锁这个门就开了。问你最多能够打开多少个门。PS:打开门必须是有序的,即你想要打开i就必须之前已经打开了i-1分析:不知道我这样做的人多不多。由于有序性,所以二份答案是必须的我是把一个钥匙a(不是一组钥匙)拆成两个点a0和a1,分别表示没有取过和取过,对于和他同组的钥匙b,连两条边,a1-->b0和b1-->a0,表示取了a钥匙就不能再取b钥匙对于每层的两把锁,c和d,连c0-->d1,d0-->c1,表示c钥匙不取则d钥匙必须取,d钥匙不取则c钥匙必须取, 阅读全文
posted @ 2012-09-01 20:12 proverbs 阅读(215) 评论(0) 推荐(0) 编辑