摘要:
在一棵树上,我们要求点 $(u,v)$ 之间路径的第$k$大数。 对于点 $i$ ,建立 $i$ 到根节点的一棵前缀主席树。 简单容斥后不难得出结果为$sumv[u]+sumv[v]−sumv[lca]−sumv[fa[lca]]$ 其他的和主席树是一样的。 Code: 阅读全文
摘要:
挺裸的,没啥可讲的。不带修改的主席树裸题Code:#include#includeusing namespace std;const int maxn = 500000 + 5;int n, m ,root[maxn];struct Chair_Tree{... 阅读全文
摘要:
Code: 阅读全文
摘要:
Code:#include using namespace std;const int maxn=4000005;const int R=4000002;const int N=4000002;long long sumv[maxn... 阅读全文
摘要:
Code:#includeusing namespace std;typedef long long ll;const int maxn=10000000+1;long long mod;ll fac[maxn];ll inv[maxn];ll an... 阅读全文
摘要:
显然,横纵坐标要互质才能被看到。 处理出与横坐标 $i$互质的纵坐标的个数,求一遍前缀和即可。 阅读全文