洛谷传送门

BZOJ传送门


解析:

对所有点双建立圆方树,设圆点权值为−1-1−1,方点权值为点双大小。那么原题转化为求树上所有圆点两两路径的权值和,直接上树形DP。


代码:

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define re register
#define gc get_char
#define cs constnamespace IO{inline char get_char(){static cs int Rlen=1<<20|1;static char buf[Rlen],*p1,*p2;return (p1==p2)&&(p2=(p1=buf)+fread(buf,1,Rlen,stdin),p1==p2)?EOF:*p1++;}inline int getint(){re char c;while(!isdigit(c=gc()));re int num=c^48;while(isdigit(c=gc()))num=(num+(num<<2)<<1)+(c^48);return num;}
}
using namespace IO;cs int N=4e5+5;
int n,tot,m;
struct Graph{int to[N],nxt[N],last[N],ecnt;void addedge(int u,int v){nxt[++ecnt]=last[u],last[u]=ecnt,to[ecnt]=v;}
}g1,g2;int dfn[N],low[N],dfs_clock;
int sta[N],top;
int val[N],siz[N],sum;void tarjan(int u){dfn[u]=low[u]=++dfs_clock;sta[++top]=u;siz[u]=1;val[u]=-1;for(int re e=g1.last[u],v=g1.to[e];e;v=g1.to[e=g1.nxt[e]]){if(!dfn[v]){tarjan(v);low[u]=min(low[u],low[v]);if(low[v]>=dfn[u]){g2.addedge(u,++tot);val[tot]=1;int x;do{x=sta[top--];g2.addedge(tot,x);siz[tot]+=siz[x];++val[tot];}while(x!=v);siz[u]+=siz[tot];}}else low[u]=min(low[u],dfn[v]);}
}ll ans;
void dfs(int u){if(u<=n)ans+=(ll)(sum-1)*val[u];ans+=(ll)(sum-siz[u])*siz[u]*val[u];for(int re e=g2.last[u],v=g2.to[e];e;v=g2.to[e=g2.nxt[e]]){ans+=(ll)(sum-siz[v])*siz[v]*val[u];dfs(v);}
}signed main(){tot=n=getint(),m=getint();for(int re i=1;i<=m;++i){int u=getint(),v=getint();g1.addedge(u,v);g1.addedge(v,u);}for(int re i=1;i<=n;++i)if(!dfn[i])tarjan(i),sum=siz[i],dfs(i);cout<<ans;return 0;
}

2019.03.07【APIO2018】【洛谷P4630】【BZOJ5463】铁人两项(圆方树)(树形DP)相关推荐

  1. [APIO2018]铁人两项——圆方树+树形DP

    题目链接: [APIO2018]铁人两项 对于点双连通分量有一个性质:在同一个点双里的三个点$a,b,c$,一定存在一条从$a$到$c$的路径经过$b$且经过的点只被经过一次. 那么我们建出原图的圆方 ...

  2. [APIO2018] Duathlon 铁人两项 圆方树,DP

    [APIO2018] Duathlon 铁人两项 LG传送门 圆方树+简单DP. 不会圆方树的话可以看看我的另一篇文章. 考虑暴力怎么写,枚举两个点,答案加上两个点之间的点的个数. 看到题面中的一句话 ...

  3. 洛谷 P5536 【XR-3】核心城市(贪心 + 树形 dp 寻找树的中心)

    [XR-3]核心城市 题目描述 X 国有 nnn 座城市,n−1n - 1n−1 条长度为 111 的道路,每条道路连接两座城市,且任意两座城市都能通过若干条道路相互到达,显然,城市和道路形成了一棵树 ...

  4. 【洛谷4657】[CEOI2017] Chase(一个玄学的树形DP)

    点此看题面 大致题意: 有一棵树,树上编号为 i i i的节点上有 F i F_i Fi​个铁球,逃亡者有 V V V个磁铁,当他在某个节点放下磁铁时,与这个节点相邻的所有节点上的铁球都会被吸引到这个 ...

  5. 洛谷P4630 [APIO2018] Duathlon 铁人两项 【圆方树】

    题目链接 洛谷P4630 题解 看了一下部分分,觉得树的部分很可做,就相当于求一个点对路径长之和的东西,考虑一下能不能转化到一般图来? 一般图要转为树,就使用圆方树呗 思考一下发现,两点之间经过的点双 ...

  6. 信息学奥赛一本通 1107:校门外的树 | 1931:【05NOIP普及组】校门外的树 | OpenJudge NOI 1.6 06 | 洛谷 P1047 [NOIP2005 普及组] 校门外的树

    [题目链接] ybt 1107:校门外的树 ybt 1931:[05NOIP普及组]校门外的树 OpenJudge NOI 1.6 06:校门外的树 洛谷 P1047 [NOIP2005 普及组] 校 ...

  7. 洛谷 P1873 [COCI 2011/2012 #5] EKO / 砍树

    题目传送门: 洛谷 P1873 [COCI 2011/2012 #5] EKO / 砍树 题目描述 伐木工人 Mirko 需要砍 M 米长的木材.对 Mirko 来说这是很简单的工作,因为他有一个漂亮 ...

  8. 洛谷P1873 [COCI 2011/2012 #5] EKO / 砍树(二分法)

    题目链接 : 洛谷P1873 [COCI 2011/2012 #5] EKO / 砍树 文章目录 前言 一.题目 题目描述 输入格式 输出格式 输入输出样例 说明/提示 二.代码 前言 第一次写博客, ...

  9. 洛谷P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two

    两只塔姆沃斯牛 The Tamworth Two 一.题目信息 1.题目链接 2.题目详情 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 提示 二.题目详解 1.逻辑 2.代码 (1 ...

  10. LOJ.2587.[APIO2018]铁人两项Duathlon(圆方树)

    题目链接 LOJ 洛谷P4630 先对这张图建圆方树. 对于S->T这条(些)路径,其对答案的贡献为可能经过的所有点数,那么我们把方点权值设为联通分量的大小,可以直接去求树上路径权值和. 因为两 ...

最新文章

  1. JS 取消冒泡事件 兼容火狐IE
  2. python lambda ,map详解
  3. cat/tac/more/less 命令详解
  4. 在没有安装OpenCV的电脑运行OpenCV程序
  5. 力扣(LeetCode) 35. 搜索插入位置
  6. angular组件-特殊的瀑布流(原创)
  7. [Hadoop in China 2011] 中兴:NoSQL应用现状及电信业务实践
  8. java ab工具_(ab)使用Java 8 FunctionalInterfaces作为本地方法
  9. python 人脸关键点检测_opencv+python+dlib人脸关键点检测、实时检测
  10. excel vba 如何将日期周几转换成文字_Excel 从精通到入门
  11. 【ElasticSearch】IK分词加入标点符号
  12. Python:集合、三元运算符
  13. RE-Base64编码分析
  14. Ocr答题辅助神器 OcrAnswerer4.x,通过百度OCR识别手机文字,支持屏幕窗口截图和ADB安卓截图,支持四十个直播App,可保存题库...
  15. 《赖氏经典英语语法》第一集
  16. ES6--Reflect
  17. 2020湖南省技能竞赛获奖名单_2020技能竞赛丨湖南省职业院校技能竞赛我校赛点圆满闭幕...
  18. Java学习路线:day1 Java语言概述
  19. 计算机内存错误 要降频,win7系统出现内存自动降频的解决方法
  20. 列表中循环添加字典出现覆盖现象的问题

热门文章

  1. Android SVG矢量图/矢量动画、Vector和VectorDrawable矢量图及动画,减少App Size
  2. Mathematica 矩阵的LU分解
  3. Excel VBA 高级编程-出入库系统
  4. 企业微信标签在哪?如何设置?
  5. 网络七层协议与网络四层协议
  6. 【技术美术图形部分】纹理基础2.0-凹凸映射
  7. 截图智能识字demo
  8. python timepicker_Android之日期时间选择控件DatePicker和TimePicker
  9. android timepicker 设置颜色,android – 更改TimePicker文本颜色
  10. Detours学习之十二:Detours API用于修改二进制文件的api