上一页 1 ··· 3 4 5 6 7 8 9 下一页
摘要: 给定一个支持增加和删除的点集,求将点集联通的边集的最小值 引理: 将点按照dfn环排列后 求相邻两点的距离和就是答案的二倍 尝试证明: 我们发现dfn相对大的节点 他们的了lca的的dfn就相对较小 如果一个节点的祖先的链上,经过dfn小的一定会经过dfn大的 对于三个点$a,b,c$,我们假设$d 阅读全文
posted @ 2022-01-16 20:07 __iostream 阅读(40) 评论(0) 推荐(0)
摘要: void dfs1(int x) { size[x]=1; for(int i=head[x];i;i=e[i].next) { int y=e[i].to; if(dep[y]) continue; dep[y]=dep[x]+1; fa[y]=x; dfs1(y); size[x]+=size[ 阅读全文
posted @ 2022-01-16 20:03 __iostream 阅读(21) 评论(0) 推荐(0)
摘要: 给定一棵树,在树的直径上求一个路径,让树上的点到路径的距离的最大值最小 \[ ans=min_{i,j}\{\ max\{ \ max_{i\le k\le j}(d_k),dis_{1,i},dis_{j,t} \} \} \] 根据直径的最长性 可以放缩且不影响结果 \[ ans=min_{i, 阅读全文
posted @ 2022-01-16 14:45 __iostream 阅读(33) 评论(0) 推荐(0)
摘要: 考虑为什么队头就是最优决策: 因为我们要找的是sum的最小值,单调队列内存储了所有可能的决策集合,而对头又是最小的 所以取对头转移就可以 #include <iostream> #include <cstdio> #include <cstring> #include <queue> using n 阅读全文
posted @ 2022-01-15 22:19 __iostream 阅读(26) 评论(0) 推荐(0)
摘要: 求窗口内最大值 #include <iostream> #include <cstdio> #include <queue> using namespace std; const int N=1e6+10; const int INF=0x3f3f3f3f; int read() { int x=0 阅读全文
posted @ 2022-01-15 22:08 __iostream 阅读(35) 评论(0) 推荐(0)
摘要: 给定一颗树,把它扩充成完全图.求需要的最小边权和 struct Edge { int x,y,z; }e[N]; int T,n; int fa[N],sz[N]; int get(int x) { if(x==fa[x]) return x; return fa[x]=get(fa[x]); } 阅读全文
posted @ 2022-01-15 17:40 __iostream 阅读(27) 评论(0) 推荐(0)
摘要: 最短路径树计数 树的计数问题 我们考虑类似prim的方式 维护树的一部分 这样就可以用乘法原理了 #include <iostream> #include <cstdio> #include <cstring> #include <queue> #include <vector> #include 阅读全文
posted @ 2022-01-15 17:39 __iostream 阅读(34) 评论(0) 推荐(0)
摘要: 求下式的最大值: \[ \frac{\sum_i^n a_i \times x_i}{\sum_i^n b_i \times x_i} \] 也就是 对任意的x \[ \frac{\sum_i^n a_i \times x_i}{\sum_i^n b_i \times x_i} \le ans \] 阅读全文
posted @ 2022-01-13 21:39 __iostream 阅读(64) 评论(0) 推荐(0)
摘要: 关系符号 \(\leq\) \leq \(\geq\) \geq \(\approx\) \approx \(\equiv\) 运算符号 \(\prod\) \prod 希腊字母 \(\varphi\) \varphi \(\psi\) \psi 方程组 \begin{cases} a \ a \ 阅读全文
posted @ 2022-01-09 22:37 __iostream 阅读(45) 评论(0) 推荐(0)
摘要: 给定一棵树 边权为1 需要从一号节点出发走每一条边再回到一号节点 现在允许添加一条或者两条边 添加的边只能走一次 求最短路径 首先考虑k=1的情况 显然连接直径两端即可 在考虑k=2的情况 我们发现 \[ ans=2(n-1)-d1+1-d2+1+\cup(d_1,d_2) \] 合并 \[ ans 阅读全文
posted @ 2022-01-09 22:15 __iostream 阅读(39) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7 8 9 下一页