题目连接:http://codeforces.com/contest/979/problem/C

解题心得:

  • 题意就是给你n个点,在点集中间有n-1条边(无重边),在行走的时候不能从x点走到y点,问你任意两点一共有多少种走法,u到v和v到u为不同的走法。
  • 首先要明白的是n个点n-1条边就是一棵树。而在树中任意两点有且仅有一条路径。这样就简单了,先从x点dfs到y点,将唯一的一条路径标记上就将树x点和y点形成的子树分开了。然后不走标记的点就可以再次dfs的得到x点子树上的点数sumx,以及y点子树上的点数sumy。答案就是n*(n-1)-sumx*sumy
 #include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 3e5+; vector <int> ve[maxn];
int n,x,y;
int vis[maxn];
void init(){
memset(vis,-, sizeof(vis));
scanf("%d%d%d",&n,&x,&y);
for(int i=;i<n;i++){
int a,b;
scanf("%d%d",&a,&b);
ve[a].push_back(b);
ve[b].push_back(a);
}
} int find(int pos){
vis[pos] = -;
if(pos == y) {
vis[y] = ;
return ;
}
for(int i=;i<ve[pos].size();i++) {
int v = ve[pos][i];
if(vis[v] == -) {
if(find(v) == ) {
vis[pos] = ;
return ;
}
}
}
return vis[pos];
} ll cnt_chx;
void find_chx(int pos){
vis[pos] = ;
cnt_chx++;
for(int i=;i<ve[pos].size();i++) {
int v = ve[pos][i];
if(vis[v] < )
find_chx(v);
}
} ll cnt_chy;
void find_chy(int pos) {
vis[pos] = ;
cnt_chy++;
for(int i=;i<ve[pos].size();i++) {
int v = ve[pos][i];
if(vis[v] < )
find_chy(v);
}
} int main(){
init();
ll ans = (ll)n*((ll)n-(ll));
find(x);
find_chx(x);
find_chy(y);
ans -= cnt_chx*cnt_chy;
printf("%lld\n",ans);
return ;
}

最新文章

  1. [干货]Chloe官网及基于NFine的后台源码毫无保留开放
  2. node的错误处理
  3. Spark 常用参数及调优
  4. 虚函数列表: 取出方法 // 虚函数工作原理和(虚)继承类的内存占用大小计算 32位机器上 sizeof(void *) // 4byte
  5. 【转】基于 CoreText 实现的高性能 UITableView
  6. [solr] - defType - 查询权重排序
  7. ASP.NET Web API从注释生成帮助文档
  8. 51nod1313 完美串
  9. 判断Windows操作系统的版本
  10. Windows phone 之 UserControl的应用
  11. JS中的for和for in循环
  12. (转载)ANDROID STRINGS.XML 中的特殊字符转义
  13. MongoDB的全文检索(Text Search)功能
  14. postman接口测试举例情况
  15. WebSocket群聊与单聊
  16. css实用属性
  17. Redis集群规范
  18. JAXB性能优化
  19. idea 2017破解方法
  20. odoo导入功能二开

热门文章

  1. 简单二级导航JQ事件代码
  2. 基于vue2+nuxt构建的高仿饿了么(2018版)
  3. Azure CDN:氮气加速已开启,司机们请做好准备
  4. python3绘图示例6-1(基于matplotlib,绘图流程介绍及设置等)
  5. HTML5开发必备工具
  6. nginx处理HTTP header问题
  7. 浏览器中使用calc不识别
  8. navicat for mysql注册码:NAVN-LNXG-XHHX-5NOO
  9. 使用命令创建jenkins的job,解决jenkinsapi.custom_exceptions.JenkinsAPIException错误
  10. unixbench安装及使用