抽离题意

求删除一条树边和一条非树边后将图分成不连通的两部分的方案数

对于一棵树,再加入一条边就会产生环。若只有一个环,说明只加入了一条非树边 (x, y),记 lca 为 l, 那么

对于任意一条 (x, l) and (y, l) 上的树边,都会产生 1 的贡献,也就是说若一条树边可以产生 1 的贡献,

那么该边必须只存在于一个环中,这样的话,对于每条非树边,在树上 (x, l) and (y, l) 的边 +1,这样找出

权值为 1 的边,对答案的贡献为 1 ,当然如果某条边不存在于任意环,那么它的贡献为 m。

树上差分即可

#include <bits/stdc++.h>

const int N = 1e5 + 10;

std:: vector <int> Vec[N];
int n, m;
int f[N][27];
int deep[N]; void Dfs(int u, int f_, int dep) {
int S = Vec[u].size();
deep[u] = dep;
for(int i = 0; i < S; i ++) {
int v = Vec[u][i];
if(v == f_) continue;
f[v][0] = u;
Dfs(v, u, dep + 1);
}
} void Pre() {
for(int j = 1; j <= 25; j ++)
for(int i = 1; i <= n; i ++)
f[i][j] = f[f[i][j - 1]][j - 1];
} inline int Lca(int x, int y) {
if(deep[x] < deep[y]) std:: swap(x, y);
int del = deep[x] - deep[y];
for(int i = 0; (1 << i) <= del; i ++) if(del & (1 << i)) x = f[x][i];
if(x == y) return x;
for(int i = 24; i >= 0; i --) if(f[x][i] != f[y][i]) x = f[x][i], y = f[y][i];
return f[x][0];
} int Cnt[N]; void Dfs_ans(int u, int f_) {
int S = Vec[u].size();
for(int i = 0; i < S; i ++) {
int v = Vec[u][i];
if(v == f_) continue;
Dfs_ans(v, u);
Cnt[u] += Cnt[v];
}
} int main() {
std:: cin >> n >> m;
for(int i = 1; i < n; i ++) {
int u, v; std:: cin >> u >> v;
Vec[u].push_back(v), Vec[v].push_back(u);
}
Dfs(1, 0, 1);
Pre();
for(int i = 1; i <= m; i ++) {
int x, y;
std:: cin >> x >> y;
Cnt[x] ++, Cnt[y] ++, Cnt[Lca(x, y)] -= 2;
}
Dfs_ans(1, 0);
int Answer = 0;
for(int i = 2; i <= n; i ++) {
if(Cnt[i] == 0) Answer += m;
else if(Cnt[i] == 1) Answer ++;
}
std:: cout << Answer;
return 0;
}

loj #10131的更多相关文章

  1. LOJ #10131 「一本通 4.4 例 2」暗的连锁

    LOJ #10131 「一本通 4.4 例 2」暗的连锁 给一棵 \(n\) 个点的树加上 \(m\) 条非树边 , 现在需要断开一条树边和一条非树边使得图不连通 , 求方案数 . $n \le 10 ...

  2. 【LOJ#10131】暗的锁链

    题目大意:给定一个 N 个点无向图的一棵生成树和另外 M 条边,第一次去掉生成树中的一条边,第二次去掉另外 M 条边中的一条边,求有多少种情况可以使得给定的无向图不连通. 题解:首先考虑该生成树,若新 ...

  3. uva 10131 Is Bigger Smarter?(DAG最长路)

    题目连接:10131 - Is Bigger Smarter? 题目大意:给出n只大象的属性, 包括重量w, 智商s, 现在要求找到一个连续的序列, 要求每只大象的重量比前一只的大, 智商却要小, 输 ...

  4. Uva 10131 Is Bigger Smarter? (LIS,打印路径)

    option=com_onlinejudge&Itemid=8&page=show_problem&problem=1072">链接:UVa 10131 题意: ...

  5. [Noi2016]区间 BZOJ4653 洛谷P1712 Loj#2086

    额... 首先,看到这道题,第一想法就是二分答案+线段树... 兴高采烈的认为我一定能AC,之后发现n是500000... nlog^2=80%,亲测可过... 由于答案是求满足题意的最大长度-最小长 ...

  6. Loj #2192. 「SHOI2014」概率充电器

    Loj #2192. 「SHOI2014」概率充电器 题目描述 著名的电子产品品牌 SHOI 刚刚发布了引领世界潮流的下一代电子产品--概率充电器: 「采用全新纳米级加工技术,实现元件与导线能否通电完 ...

  7. Loj #3096. 「SNOI2019」数论

    Loj #3096. 「SNOI2019」数论 题目描述 给出正整数 \(P, Q, T\),大小为 \(n\) 的整数集 \(A\) 和大小为 \(m\) 的整数集 \(B\),请你求出: \[ \ ...

  8. Loj #3093. 「BJOI2019」光线

    Loj #3093. 「BJOI2019」光线 题目描述 当一束光打到一层玻璃上时,有一定比例的光会穿过这层玻璃,一定比例的光会被反射回去,剩下的光被玻璃吸收. 设对于任意 \(x\),有 \(x\t ...

  9. Loj #3089. 「BJOI2019」奥术神杖

    Loj #3089. 「BJOI2019」奥术神杖 题目描述 Bezorath 大陆抵抗地灾军团入侵的战争进入了僵持的阶段,世世代代生活在 Bezorath 这片大陆的精灵们开始寻找远古时代诸神遗留的 ...

随机推荐

  1. proxy_banner

  2. Linux -- file 命令

    1.file命令含义 file命令用于接受一个文件作为参数并执行某些测试,以确定正确的文件类型 2.file命令参数以及实例 (1)file命令查看文件类型 $ file /etc/irbrc /et ...

  3. CF778D Parquet Re-laying 构造

    传送门 如果\(2 \not\mid M\),就把两个图折一下,把\(N\ M\)互换,这样就可以保证\(2 \mid M\). 因为操作可逆,所以我们可以选择一个中间状态,把起始和终点状态都变成这个 ...

  4. 使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死)

    原文:使用 SetParent 跨进程设置父子窗口时的一些问题(小心卡死) 在微软的官方文档中,说 SetParent 可以在进程内设置,也可以跨进程设置.当使用跨进程设置窗口的父子关系时,你需要注意 ...

  5. Libev库学习

    Libev库学习 https://www.cnblogs.com/wunaozai/p/3950249.html Libev库学习(1)https://www.cnblogs.com/wunaozai ...

  6. MySQL数据库连接报错

    数据库版本8.x和其他版本配置有区别: 1. 驱动依赖和连接 报错: Could not create connection to database server - java mysql conne ...

  7. PHP利用preg_split函数格式化日期

    // 2018/2/13 00:26:00.000 function format_date($date, $format='Y-m-d H:i:s') { if(empty($date)) retu ...

  8. IOS - 总结下swift使用GCD 多线程(二)GCD和DispatchQueue

    1.前言  iOS中处理多核并发的技术有两种分别是:`Grand Central Dispatch`(以下简称`GCD`)和`NSOperationQueue`框架.iOS开发的老司机们在程序开发中处 ...

  9. CDN详解

    一.定义 背景: 当下的互联网应用都包含大量的静态内容,但静态内容以及一些准动态内容又是最耗费带宽的,特别是针对全国甚至全世界的大型网站,如果这些请求都指向主站的服务器的话,不仅是主站服务器受不了,单 ...

  10. CPN tools 帮助文档资料和实例

    1.替代变迁 包含有替代变迁的页面叫做父页,当CPN网使用替代变迁的时候,替代变迁所表达的逻辑必须在某一个位置得到实现,实现替代变迁逻辑页面叫做子页或者子网. 将替代变迁相邻的库所叫做槽库所,也即是在 ...