题意读懂了就好做了,就是求一下点双连通分量。维护一下一颗子树的结点数,对于一个结点当u是割点的时候,

统计一下u分割的连通分量v,每得到一个连通分量的结点数cnt(v)和之前连通分量结点数sum相乘一下就好。最后加一下和u的子树上的连通分量总数和其它的结点的乘积。

B,C中其中一者可以是A,所有最后还要加上n-1。

补下以前的题

#include<bits/stdc++.h>
using namespace std;
int n,m;
const int maxn = 20005;
vector<int> G[maxn];
#define PB push_backint dfn[maxn],low[maxn],dfs_clock,ans[maxn],cnt[maxn];void tarjan(int u,int fa = -1)
{dfn[u] = low[u] = ++dfs_clock;cnt[u] = 1; ans[u] = 0;int sum = 0;for(int i = 0; i < G[u].size(); i++){int v = G[u][i];if(!dfn[v]){tarjan(v,fa);if(low[v]>=dfn[u]){ans[u] += sum*cnt[v];sum += cnt[v];}low[u] = min(low[v],low[u]);cnt[u] += cnt[v];}else if(v != fa && dfn[v] < dfn[u] ) { low[u] = min(low[u],dfn[v]); }}ans[u] += (n-sum-1)*sum;}int main()
{freopen("travel.in","r",stdin);freopen("travel.out","w",stdout);cin>>n>>m;for(int i = 0; i < m; i++){int u,v; scanf("%d%d",&u,&v);G[u].PB(v); G[v].PB(u);}tarjan(1);for(int i = 1; i <= n; i++) printf("%d\n",ans[i]+n-1);return 0;
}

转载于:https://www.cnblogs.com/jerryRey/p/4770915.html

Gym 100342I Travel Agency (Tarjan)相关推荐

  1. Learning to Estimate the Travel Time(翻译)

    滴滴在KDD2018,发表的一篇ETA文章,内容很不错,分享给大家: 摘要: 车辆行程时间估计或估计到达时间(ETA)是最重要的基于位置的服务(LBS)之一.它变得越来越重要,并已广泛用作导航系统和智 ...

  2. ACM教程 - 强连通分量(Tarjan)

    一.讲解一 强连通定义:在有向图G<V,E>中,对于点集V'∈V, 点集中的任意两点都可达,则称V'为强连通. 孤立的一个点也是一个强连通分量. 在嵌套的多个环时 : {所有环上的点}为一 ...

  3. 【YBT2022寒假Day8 A】染色计划(Tarjan)(线段树优化建边)(树链剖分)

    染色计划 题目链接:YBT2022寒假Day8 A 题目大意 给你一棵树,然后有 k 中颜色,每个点有一个颜色,然后问你要修改多少次,才能使得一个存在的颜色的所有点构成一个连通块. 一个修改操作指选择 ...

  4. 稳定婚姻(tarjan)

    传送门 这道题一开始可能以为是二分图匹配--?不过后来发现和二分图没啥大关系. 简单分析之后发现,把夫妻之间连边(男性向女性连边),之后再将每对曾经是情侣的人连边(女性向男性连边),当然以上的方向可以 ...

  5. 【题解】P2921 在农场万圣节(tarjan)

    这个题可以用tarjan解决,将染色后的点标记为tarjan的那个点,特判如果出发点等于目标点 答案就是1,如果要求的那个点在强连通分量里面,我们就输出其所含的cnt(也就是强连通分量所代表的环的大小 ...

  6. POJ 1236 Network of Schools(tarjan)

    Network of Schools Description A number of schools are connected to a computer network. Agreements h ...

  7. jzoj6001. 【PKUWC2019模拟2019.1.15】Mines (tarjan)

    题面 题解 我们把每个地雷向它能炸到的地雷连边,不难发现同一个强联通分量里的点只要一个炸全炸 那么我们缩点,首先所有入度为\(0\)的强联通分量中必须得选一个地雷炸掉,而入度不为\(0\)的强联通分量 ...

  8. 【BZOJ1123】 [POI2008]BLO (tarjan)

    tarjan判断割点...拿掉一个点之后,会被分成若干个联通块,用节点个数和统计一下他们相互不能到达的个数就好. 1 const maxn=100419; 2 maxm=1000419; 3 type ...

  9. POJ 2186 Popular Cows(Tarjan)

    http://poj.org/problem?id=2186 题意 :给你n头牛,m对关系,每对关系由两个编号组成,u和v代表着u认为v是受欢迎的,如果1认为2是受欢迎的,2认为3是受欢迎的,那1认为 ...

最新文章

  1. servlet Context (在servlet 中设定context)
  2. SAP Retail 寄售门店关键配置
  3. 如何导出NK.bin中的内容
  4. 方舟修改显示服务器个数,方舟生存进化服务器模式设置教程
  5. BDB (Berkeley DB)数据库简单介绍(转载)
  6. 2017-06-23
  7. Atitit code for biz lst idx项目分析法,包括模块分析,与模块位置idx数据库分析 数据表的分类 日志表不断增长(包括用户表,订单表等)。。元数据表表 基本不增长。。。
  8. 3dmax导入模型,解决贴图不显示的问题
  9. 『概率知识』伯努利试验及n重伯努利试验+方差协方差理解!
  10. After 500:写500篇博客其实和写一篇是一样的
  11. 思科网院 Routing and Switching Essentials ( 版本 6.00) - RSE 6.0 第 1 章考试答案
  12. 计算机睡眠打印机不可用设置,win7系统下打印机属性显示不可用如何解决
  13. java web聊天室论文_基于javaweb聊天室.doc
  14. shell 中的单行注释和多行注释
  15. FileReader类
  16. 导致网站首页降权的10个因素
  17. caffe2 安装填坑ing
  18. Redis客户端常用命令大全
  19. HTTP:Form表单的交互与抓包
  20. Linux下的cmt2300a驱动

热门文章

  1. ckplayer php,ckplayer 网页视频播放插件
  2. python 时间格式 工作日_python使用time、datetime返回工作日列表实例代码
  3. 科宇扫地机器人_我的三年16台智能扫地机器人使用回忆录 篇四:扫地谁更精准更干净?新一代3D视讯+激光成像 PK 老式激光扫描,万字实测对比分享...
  4. 关于Nginx的使用
  5. 车模厂商能否用点心?
  6. 以赛促学,飞桨助力大学生智能车竞赛升级
  7. 利用MATLAB帮助求解作业中的Laplace变换和Z变换
  8. python 批量下载网址_python 遍历oss 实现批量下载
  9. python难度大的题_早看少被坑!Python 最难的问题
  10. 计算机财务管理相关文献,财务管理外文参考文献(精选文献105个)