HRBUST 2064:萌萌哒十五酱的宠物~(最近公共祖先LCA)
摘要:
题意:一个n个点的树,询问某两点之间的简单路径,问路径上任选三边能否组成一个三角形。 N= A[i-1] + A[i-2];观察可以发现其增长类似斐波那契,又因为权值=45个时,必然可以组成三角形。剩下的,就暴力一下就好了。确定路径边的个数的方法是深度结合lca来做。暴力的话就是两点向上攀,直到公共祖先。然后sort一下,然后检查是否存在 A[i] #include #include using namespace std;#define N 100010struct BCJ{ int fa[N]; void init(int n) { for (int i = 0;... 阅读全文
posted @ 2014-03-25 19:47 ShineCheng 阅读(212) 评论(0) 推荐(0) 编辑