
分治
Ezereal
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #372 (Div. 2) E. Digit Tree (点分治)
题意 给一棵树,有n(n≤105)n(n≤105)个点。边有权值wi(1≤wi≤9)wi(1≤wi≤9)。求路径(u,v)(u,v)使得u→vu→v路径构成的大数模m为0,其中gcd(10,m)=1. 思路 点分治根据欧拉定理 xϕ(m)≡1(mod m),gcd(x,m)=1 可以求出10的逆元。 #include #include #include #inclu转载 2016-10-16 22:24:25 · 574 阅读 · 0 评论 -
树分治(点分治模板)poj-1741 Tree
对于一棵有根树, 树中满足要求的一个数对所对应的一条路径,必然是以下两种情况之一: 1、经过根节点 2、不经过根节点,也就是说在根节点的一棵子树中 对于情况2,可以递归求解,下面主要来考虑情况1。 设点i的深度为Depth[i],父亲为Parent[i]。 若i为根,则Belong[i]=-1,若Parent[i]为根,则Belong[i]=i,否则Belong[i]=Belong[转载 2016-10-16 22:37:28 · 524 阅读 · 0 评论 -
HDU 5808Price List Strike Back cdq分治+背包
题目描述 在Byteland一共有nn家商店,编号依次为11到nn。每家商店只会卖一种物品,其中第ii家商店的物品单价为vi ,且它到Byteasar的家的距离为di 。 Byteasar每天都会进行一次购物,第ii天他会选择一个区间[li,ri],并给自己设定一个距离上限ci ,然后他会在编号在该区间内每家到自己家的距离不超过ci的商店购买最多一件物品,当然他也可以选择什么都转载 2016-10-16 22:52:16 · 502 阅读 · 0 评论 -
SPOJ LIS2 Another Longest Increasing Subsequence Problem 三维偏序最长链 CDQ分治
题意 求三维偏序最长链 #include #include #include #include #include using namespace std; const int maxn = 100500+5; inline long long read() { long long x=0,f=1;char ch=getchar(); while(ch'9'){if(ch转载 2016-10-19 08:27:50 · 840 阅读 · 0 评论