2011年8月20日

ACM PKU 1182 食物链

摘要: 题目描述:http://poj.org/problem?id=1182今天上午闲着没事,把这道题的解题思路仔细梳理一下:题目是中文的,都看懂了,就不多说了。对于A、B、C三种动物,他们的关系构成了一个环;如图所示,ABC 直接的关系是吃的关系,有向图:从三者之间的关系可以看出ABC是轮回对称的,所以只要讨论一个点的关系就够了;但是对于一个点,仍然存在着三种关系,出了吃别人,和自己被吃之外,还有一个同类型的关系;对于不能确定两个元素是不是在一个并查集里的情况下,需要进行合并,unionSet()函数来实现;对于X和Y他们的合并需要维护两个数组,一个是并查集的P[]数组,一个是关系数组deff[] 阅读全文

posted @ 2011-08-20 21:23 _Clarence 阅读(418) 评论(0) 推荐(1) 编辑

ACM PKU1703 Find them, Catch them

摘要: 题目描述:http://poj.org/problem?id=1703这是一道带偏移量的并查集问题,一点点小错误调了我好久,悲剧!奉献代码:#include <iostream>#include <cstring>#include <cstdio>using namespace std;const int MAXN = 100000;int N,M;bool deff[MAXN+10];int p[MAXN+10];void init() //并查集初始化;{ for(int i=0; i<=N+1; i++) { p[i]=i; deff[i]=0; 阅读全文

posted @ 2011-08-20 19:51 _Clarence 阅读(130) 评论(0) 推荐(0) 编辑

ACM PKU 2299 Ultra-QuickSort

摘要: 题目链接:http://poj.org/problem?id=2299这道题是求逆序数的,离散化+树状数组;注意的地方:1、离散化的比较函数;2、结果会爆int,所以必须用__int64或者是long long 类型来存储结果;#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;const int MAXN=500000;int n_case;int B[MAXN+10],C[MAXN+10];struct no 阅读全文

posted @ 2011-08-20 10:20 _Clarence 阅读(128) 评论(0) 推荐(0) 编辑

导航