摘要:
用树形DP找到这颗树距离最远的两个点....对于一个询问K..若小于最远距离..显然只要走最远的这条边走K-1个边就行了.. 当K大于了最远距离..就要去走其他的点...而去其他点必须再回到这个主线..所以要加上(最远距离上点总数-K)*2... Program:#include#include#include#include#include#include#include#define ll long long#define oo 1000000007#define MAXN 100010using namespace std;vector Tree[MAXN];int dis[MAX... 阅读全文
摘要:
题目:Broot 题意:给出k,m,newx的值,求方程x^k(mod m)=newx的解,其中m为素数。 解法步骤:(1)先暴力求m的原根g(2)大步小步求g^t1(mod m)=newx(3)则g^(t1+n*t2)(mod m)=newx,t2=m-1(4)x=g^y(mod m),x^k=(g^y)^k=g^(yk)=g^(t1+n*t2)那么就是求同于方程yk=t1(mod t2),求出y之后带入x=g^y(mod m)解出x #include #include #include #include #include #include using namespace std;typed 阅读全文
摘要:
基础题,直线间关系#include #include #include #define eps 1e-8#define zero(x) (((x)>0?(x):-(x)) eps;}//判两点在线段异侧,点在线段上返回0bool opposite_side(point p1, point p2, line l){ return xmult(l.a, p1, l.b)*xmult(l.a, p2, l.b) eps) return distance(p, l.a) eps) return distance(p, l.a) = pi + pi) dlng -= pi + pi; if (.. 阅读全文