2019.03.07【APIO2018】【洛谷P4630】【BZOJ5463】铁人两项(圆方树)(树形DP)
洛谷传送门
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)相关推荐
- [APIO2018]铁人两项——圆方树+树形DP
题目链接: [APIO2018]铁人两项 对于点双连通分量有一个性质:在同一个点双里的三个点$a,b,c$,一定存在一条从$a$到$c$的路径经过$b$且经过的点只被经过一次. 那么我们建出原图的圆方 ...
- [APIO2018] Duathlon 铁人两项 圆方树,DP
[APIO2018] Duathlon 铁人两项 LG传送门 圆方树+简单DP. 不会圆方树的话可以看看我的另一篇文章. 考虑暴力怎么写,枚举两个点,答案加上两个点之间的点的个数. 看到题面中的一句话 ...
- 洛谷 P5536 【XR-3】核心城市(贪心 + 树形 dp 寻找树的中心)
[XR-3]核心城市 题目描述 X 国有 nnn 座城市,n−1n - 1n−1 条长度为 111 的道路,每条道路连接两座城市,且任意两座城市都能通过若干条道路相互到达,显然,城市和道路形成了一棵树 ...
- 【洛谷4657】[CEOI2017] Chase(一个玄学的树形DP)
点此看题面 大致题意: 有一棵树,树上编号为 i i i的节点上有 F i F_i Fi个铁球,逃亡者有 V V V个磁铁,当他在某个节点放下磁铁时,与这个节点相邻的所有节点上的铁球都会被吸引到这个 ...
- 洛谷P4630 [APIO2018] Duathlon 铁人两项 【圆方树】
题目链接 洛谷P4630 题解 看了一下部分分,觉得树的部分很可做,就相当于求一个点对路径长之和的东西,考虑一下能不能转化到一般图来? 一般图要转为树,就使用圆方树呗 思考一下发现,两点之间经过的点双 ...
- 信息学奥赛一本通 1107:校门外的树 | 1931:【05NOIP普及组】校门外的树 | OpenJudge NOI 1.6 06 | 洛谷 P1047 [NOIP2005 普及组] 校门外的树
[题目链接] ybt 1107:校门外的树 ybt 1931:[05NOIP普及组]校门外的树 OpenJudge NOI 1.6 06:校门外的树 洛谷 P1047 [NOIP2005 普及组] 校 ...
- 洛谷 P1873 [COCI 2011/2012 #5] EKO / 砍树
题目传送门: 洛谷 P1873 [COCI 2011/2012 #5] EKO / 砍树 题目描述 伐木工人 Mirko 需要砍 M 米长的木材.对 Mirko 来说这是很简单的工作,因为他有一个漂亮 ...
- 洛谷P1873 [COCI 2011/2012 #5] EKO / 砍树(二分法)
题目链接 : 洛谷P1873 [COCI 2011/2012 #5] EKO / 砍树 文章目录 前言 一.题目 题目描述 输入格式 输出格式 输入输出样例 说明/提示 二.代码 前言 第一次写博客, ...
- 洛谷P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two
两只塔姆沃斯牛 The Tamworth Two 一.题目信息 1.题目链接 2.题目详情 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 提示 二.题目详解 1.逻辑 2.代码 (1 ...
- LOJ.2587.[APIO2018]铁人两项Duathlon(圆方树)
题目链接 LOJ 洛谷P4630 先对这张图建圆方树. 对于S->T这条(些)路径,其对答案的贡献为可能经过的所有点数,那么我们把方点权值设为联通分量的大小,可以直接去求树上路径权值和. 因为两 ...
最新文章
- JS 取消冒泡事件 兼容火狐IE
- python lambda ,map详解
- cat/tac/more/less 命令详解
- 在没有安装OpenCV的电脑运行OpenCV程序
- 力扣(LeetCode) 35. 搜索插入位置
- angular组件-特殊的瀑布流(原创)
- [Hadoop in China 2011] 中兴:NoSQL应用现状及电信业务实践
- java ab工具_(ab)使用Java 8 FunctionalInterfaces作为本地方法
- python 人脸关键点检测_opencv+python+dlib人脸关键点检测、实时检测
- excel vba 如何将日期周几转换成文字_Excel 从精通到入门
- 【ElasticSearch】IK分词加入标点符号
- Python:集合、三元运算符
- RE-Base64编码分析
- Ocr答题辅助神器 OcrAnswerer4.x,通过百度OCR识别手机文字,支持屏幕窗口截图和ADB安卓截图,支持四十个直播App,可保存题库...
- 《赖氏经典英语语法》第一集
- ES6--Reflect
- 2020湖南省技能竞赛获奖名单_2020技能竞赛丨湖南省职业院校技能竞赛我校赛点圆满闭幕...
- Java学习路线:day1 Java语言概述
- 计算机内存错误 要降频,win7系统出现内存自动降频的解决方法
- 列表中循环添加字典出现覆盖现象的问题
热门文章
- Android SVG矢量图/矢量动画、Vector和VectorDrawable矢量图及动画,减少App Size
- Mathematica 矩阵的LU分解
- Excel VBA 高级编程-出入库系统
- 企业微信标签在哪?如何设置?
- 网络七层协议与网络四层协议
- 【技术美术图形部分】纹理基础2.0-凹凸映射
- 截图智能识字demo
- python timepicker_Android之日期时间选择控件DatePicker和TimePicker
- android timepicker 设置颜色,android – 更改TimePicker文本颜色
- Detours学习之十二:Detours API用于修改二进制文件的api