摘要:
题目 推出神秘结论之后,使用线段树分治即可 code #include<bits/stdc++.h> using namespace std; #define N 506 #define M 200005 int n,m,zu,ID,tot; const int mod=1145141; int m 阅读全文
摘要:
题目 枚举根之后,考虑每次连边的贡献,通过贡献算出每个点的权值,每次找出权值最大的点,又要保证父亲在儿子之前,所以将父亲和儿子合并,权值也合并一下即可 code #include<bits/stdc++.h> using namespace std; #define N 2005 int ans,n 阅读全文
摘要:
题目 考虑DP式子之后,可以通过堆维护函数,求出对应值 code #include<bits/stdc++.h> using namespace std; #define int long long #define N 200005 int zu,n,d,tg,num; int a[N]; prio 阅读全文
摘要:
题目 先建出圆方树,题目转换为数长度为 \(2*L-1\) 的路径数,长链剖分 code #include<bits/stdc++.h> using namespace std; #define N 2000005 #define ll long long int n,m,top,tot,cnt,L 阅读全文
摘要:
对于区间连边,可以线段树优化建图 对于单点连边,可以使用李超线段树维护迪杰斯特拉 code #include<bits/stdc++.h> using namespace std; #define N 400005 #define int long long #define pii pair<int 阅读全文