Codeforces Round #482 (Div. 2) :C - Kuro and Walking Route
2024-08-29 09:31:27
题目连接: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 ;
}
最新文章
- [干货]Chloe官网及基于NFine的后台源码毫无保留开放
- node的错误处理
- Spark 常用参数及调优
- 虚函数列表: 取出方法 // 虚函数工作原理和(虚)继承类的内存占用大小计算 32位机器上 sizeof(void *) // 4byte
- 【转】基于 CoreText 实现的高性能 UITableView
- [solr] - defType - 查询权重排序
- ASP.NET Web API从注释生成帮助文档
- 51nod1313 完美串
- 判断Windows操作系统的版本
- Windows phone 之 UserControl的应用
- JS中的for和for in循环
- (转载)ANDROID STRINGS.XML 中的特殊字符转义
- MongoDB的全文检索(Text Search)功能
- postman接口测试举例情况
- WebSocket群聊与单聊
- css实用属性
- Redis集群规范
- JAXB性能优化
- idea 2017破解方法
- odoo导入功能二开
热门文章
- 简单二级导航JQ事件代码
- 基于vue2+nuxt构建的高仿饿了么(2018版)
- Azure CDN:氮气加速已开启,司机们请做好准备
- python3绘图示例6-1(基于matplotlib,绘图流程介绍及设置等)
- HTML5开发必备工具
- nginx处理HTTP header问题
- 浏览器中使用calc不识别
- navicat for mysql注册码:NAVN-LNXG-XHHX-5NOO
- 使用命令创建jenkins的job,解决jenkinsapi.custom_exceptions.JenkinsAPIException错误
- unixbench安装及使用