- 博客(4)
- 收藏
- 关注
原创 POJ 1741 Tree
题意:给一颗n个顶点的树,求最短距离不超过k的顶点对数。 树的分治主要降低时间复杂度的地方就在于对树的分割,划分不均匀很容易使递归的深度退化为O(n),于是我们每次选择一个这样的点作为分割顶点,删除它后使得最大子树的顶点数最小,这样的顶点被称为重心。每次选择重心作为分割点,最大子树的顶点树必然不超过n/2,所以可以保证递归的深度是logN。 然后知道了树的分割后,所要求的顶点对就只有三
2014-04-29 22:44:08 359
原创 ZOJ 3762 Pan's Labyrinth
比赛过程中想到了算法,但是没有敲,事后想到可以直接套模版了... #include #include #include #include #include #define op operator #define cp const Point& using namespace std; const double eps = 1e-8, pi = acos(-1.0); const int
2014-03-04 11:57:17 553
原创 ZOJ 3765 Lights
比赛的时候过的是N年前的代码,还是单旋,比完赛重新敲了个双旋的,感觉这个数据有点水... #include #include #include #include #define maxn 300010 using namespace std; struct SplayTree{ int next[2],pre,key,num,work; int Gopen,Gclose
2014-03-04 11:54:30 566
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人