摘要:
题目大意:给出计算机之间的连接配置,询问某两台计算机是否相连。判断两个点是否在同一个连通分量里,用并查集处理。 1 #include 2 #define MAXN 1000000 3 4 int p[MAXN]; 5 6 int find(int x) 7 { 8 return (x == p[x]) ? x : p[x] = find(p[x]); 9 }10 11 int main()12 {13 #ifdef LOCAL14 freopen("in", "r", stdin);15 #endif16 int T;17 scanf("%d& 阅读全文
posted @ 2013-09-01 19:58
xiaobaibuhei
阅读(313)
评论(0)
推荐(0)
摘要:
题目大意:给出若干对朋友关系,每给出一对朋友关系,就输出二者所在关系网中的人数。 首先是对每个人编号,使用map简化编号过程,然后就是使用并查集更新集合。要注意的是当给出A和B的朋友关系时,无论A和B在此之前是否是朋友(属于同一个集合),都要输出建立关系后的朋友网中的人数。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define MAXN 100000*2+100 7 typedef map msi; 8 9 int p_cnt; // the number of people1... 阅读全文
posted @ 2013-09-01 16:56
xiaobaibuhei
阅读(285)
评论(0)
推荐(0)
摘要:
题目大意:给你一个无向图的顶点和边集,让你求图中连通分量的个数。使用并查集解决。 1 #include 2 #include 3 #define MAXN 30 4 5 bool G[MAXN][MAXN]; 6 int p[MAXN]; 7 8 int find(int x) 9 {10 return x == p[x] ? x : p[x]=find(p[x]);11 }12 13 int main()14 {15 #ifdef LOCAL16 freopen("in", "r", stdin);17 #endif18 int T;19 scan.. 阅读全文
posted @ 2013-09-01 16:05
xiaobaibuhei
阅读(437)
评论(0)
推荐(0)
摘要:
题目大意:给出n棵树(有重复),统计每种树出现的频率。使用STL的map。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 typedef map msi; 9 10 int main()11 {12 #ifdef LOCAL13 freopen("in", "r", stdin);14 #endif15 int T;16 scanf("%d", &T);17 getchar();18 stri 阅读全文
posted @ 2013-09-01 12:34
xiaobaibuhei
阅读(554)
评论(0)
推荐(0)
摘要:
题目大意:超市进行促销活动,顾客可以把账单放到一个箱子里,每天超市会从箱子中抽出最高消费者和最低消费者,最高消费者可以得到(最高消费-最低消费)的金钱。询问超市在n天的促销活动结束后应支付多少钱。 找出动态集合的最大值和最小值,可以用multiset进行计算。 1 #include 2 #include 3 using namespace std; 4 5 int main() 6 { 7 #ifdef LOCAL 8 freopen("in", "r", stdin); 9 #endif10 int n;11 multiset urn;12 whi.. 阅读全文
posted @ 2013-09-01 12:27
xiaobaibuhei
阅读(354)
评论(0)
推荐(0)

浙公网安备 33010602011771号