铁人两项

2023-11-22 21:59
文章标签 两项 铁人

本文主要是介绍铁人两项,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

铁人两项

求出三元组(s,c,f)的个数,使得在图中从s到c到f有一条简单路径。

考虑如果是树的话怎么做。若选出两点s和f的话,三元组的个数就要加上s和f之间的所有点。那么,换个思路,我们可以考虑每个点被统计到的次数(难道这就是所谓转换法吗?!)。那么一个树形dp就解决了。

但是,这是个图,怎么办呢?我们发现我们可以直接把点双缩起来,然后把某个点双的值改为点双中的点数。但是,别忘记点双不能缩点。因此我们只能用圆方树。把方点的值变成点双中点的个数,圆点的值变成-1,那么就可以愉快的对圆方树统计了。具体证明……我也不会啊&……&

注意圆方树的某种情况:

while (st[tl+1]!=v){  //不能写成st[tl]!=u

922029-20180904211439846-365978699.png

#include <cstdio> 
#include <algorithm>
using namespace std;const int maxn=2e5+5, maxm=2e5+5;
int n, m;
struct Edge{int fr, to, nxt;
}e1[maxm*2], e2[maxm*2];
int cnte1, cnte2, fir1[maxn], fir2[maxn], rt[maxn], size[maxn];
void addedge(int x, int y, Edge *e, int *fir, int &cnte){Edge &ed=e[++cnte]; ed.fr=x;ed.to=y; ed.nxt=fir[x]; fir[x]=cnte; }int tim, dfn[maxn], low[maxn], w[maxn], st[maxn], tl, n2, isori[maxn];
void tarjan(int u, int p, int &siz, Edge *e, int *fir){ int v;dfn[u]=low[u]=++tim; st[++tl]=u; ++siz;for (int i=fir[u]; i; i=e[i].nxt){if ((v=e[i].to)==p) continue;if (dfn[v]){ low[u]=min(low[u], dfn[v]); continue; }tarjan(v, u, siz, e, fir); low[u]=min(low[u], low[v]);  if (low[v]<dfn[u]) continue;int x, cnt=1;while (st[tl+1]!=v){  //�����st[tl]!=u�� x=st[tl--]; ++cnt;addedge(x, n2+1, e2, fir2, cnte2);addedge(n2+1, x, e2, fir2, cnte2); }w[n2+1]=cnt;addedge(n2+1, u, e2, fir2, cnte2);addedge(u, n2+1, e2, fir2, cnte2); ++n2; }
}int siz[maxn];
long long dfs(int u, int p, int n, Edge *e, int *fir){ siz[u]=isori[u]; int v; long long ans=0;for (int i=fir[u]; i; i=e[i].nxt){if ((v=e[i].to)==p) continue;ans+=dfs(v, u, n, e, fir); siz[u]+=siz[v];ans+=1ll*w[u]*siz[v]*(n-siz[v]);  //�������������� }ans+=1ll*w[u]*(n-siz[u])*siz[u];  //����Ҳ������ if (isori[u]) ans+=1ll*w[u]*(n-1);return ans;
}int main(){scanf("%d%d", &n, &m); n2=n; int x, y; long long ans=0;for (int i=1; i<=n; ++i) w[i]=-1, isori[i]=1;for (int i=1; i<=m; ++i){scanf("%d%d", &x, &y);addedge(x, y, e1, fir1, cnte1);addedge(y, x, e1, fir1, cnte1); }for (int i=1; i<=n; ++i) if (!dfn[i]) rt[i]=1, tarjan(i, 0, size[i], e1, fir1);for (int i=1; i<=n; ++i) if (rt[i]) ans+=dfs(i, 0, size[i], e2, fir2);printf("%lld\n", ans);return 0;
}

转载于:https://www.cnblogs.com/MyNameIsPc/p/9588534.html

这篇关于铁人两项的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/413196

相关文章

OceanMind海睿思参加2024数博会“数据要素赋能生态”活动,获两项数据要素优秀产品认证

近日,2024数博会“数据要素赋能生态”交流活动在贵阳国际生态会议中心成功举办,中新赛克海睿思作为国内数据要素产业优秀服务商代表受邀参加并荣获两项数据要素优秀产品认证。 作为2024数博会的重要组成部分,本次交流活动由北京赛迪出版传媒有限公司主办,《软件和集成电路》杂志社、中国计算机行业协会大数据产业生态专业委员会承办。 活动聚焦“数据赋能 生态共建”这一主题,邀请院士专家、行业学者、

聚观早报 | 12306推出两项新功能;苹果音乐限时免费试用

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 8月22日消息 12306推出两项新功能 苹果音乐限时免费试用 iQOO 13将采用标志性灯带 Redmi K80 Pro渲染图曝光 vivo X200外观设计草图曝光 12306推出两项新功能 据中国铁路官方公众号消息,为更好满足学生旅客出行

棱镜七彩荣获CNNVD两项大奖,专业能力与贡献再获认可!

6月18日,国家信息安全漏洞库(CNNVD)2023年度工作总结暨优秀表彰大会在中国信息安全测评中心成功举办。棱镜七彩凭借在漏洞方面的突出贡献和出色表现,被授予“2023年度优秀技术支撑单位”与“2023年度最佳新秀奖”。 优秀技术支撑单位是国家信息安全漏洞库依据2023年度报送高质量原创漏洞、漏洞预警支撑数据,从众多企业中选取前20名进行表彰。棱镜七彩作为CNNVD一级技术支撑单位之一

2023全球数字科技发展研究报告:中美两项关键指标增速实现“黄金交叉”

数字科技的更新迭代和普及渗透颠覆了传统社会的连接方式,万物互联成为未来社会发展的大势所趋。在这一背景下,建设数字中国成为实现高质量发展的客观要求,也是构筑国家竞争新优势、推动产业现代化的重要举措。目前,中国数字科技发展处于什么阶段?与发达国家相比中国有哪些优势?今后应该朝什么方向持续发力? 近日,阿里研究院、智谱AI联合发布了《2023全球数字科技发展研究报告——全球科研实力对比》。该报告基

荣誉见证实力!企企通连获两项大奖,数字化采购管理行业领跑者

近日,由CFS2022第十一届财经峰会暨2022可持续商业大会主办方举办的峰会评选中,经提名推荐、评委会审议,企企通创始人兼CEO徐辉荣获「2022数字化转型推动力人物」,企企通SRM系统荣获「2022产品科技创新奖」。   中国财经峰会设立于2012年,是集国内众多财经及大众媒体之力打造的一项大型活动品牌。峰会以演讲、高端对话、深度分享等多种形式汇聚分享商业智慧,探寻中国经

喜讯 | 华院计算囊获2023中国企业数智化转型升级先锋人物和创新服务企业两项大奖

2023年11月14日,由上海市经济和信息化委员会、上海市科学技术委员会指导,数据猿与上海大数据联盟联合主办的“2023企业数智化转型升级发展论坛”在上海如期举行,与会者从全国范围内远道而来、齐聚一堂,围绕“释放数字价值·驱动智能升级”主题进行深入研讨。华院计算受邀出席该论坛,并被授予“2023中国企业数智化转型升级先锋人物”和“2023中国数智化转型升级创新服务企业”两项殊荣。 据悉,“数

混合云存储EonStor GSc 荣获“年度存储产品”与“年度云端推动者”两项大奖

EonStor GSc混合云存储在与一线存储品牌的竞争中脱颖而出,获得2019年“年度存储产品”和“年度云端推动者”两大殊荣 。这两项大奖由英国《存储杂志》评出,GSc可谓实至名归。EonStor GSc产品线是企业级存储系统,定位于简化云的部署,在本地和云之间通过透明的方式,实现对数据的迁移和管理。通过EonCloud Gateway,GSc借助通用协议与云端无缝对接,企业用户无需重新部署现

华为云CodeArts Snap荣获信通院优秀大模型案例及两项荣誉证书

2024年1月25日,中国人工智能产业发展联盟智能化软件工程工作组(AI for Software Engineering,下文简称AI4SE)在京召开首届“AI4SE创新巡航”活动。在活动上,华为云大模型辅助系统测试代码生成荣获“2023AI4SE银弹优秀案例”,并获得人工智能关键技术和应用评测重点实验室“代码大模型数据集共建单位”与“《智能化软件工程技术和应用要求 第一部分:代码大模型》核心

1月无代码资讯 | 两项低代码无代码行业报告相继重磅发布;GitHub Copilot Chat全面开放使用

栏目导读:无代码资讯栏目从全球视角出发,带您了解无代码相关最新资讯。 TOP3 大事件 1、ResearchAndMarkets.com "低代码无代码开发平台市场—— 2018-2028 年全球行业规模、份额、趋势、机遇及预测"报告发布 据雅虎财经近日资讯显示,ResearchAndMarkets.com 新增了 "低代码无代码开发平台市场——2018-2028 年全球行业规

医院SPD平台-医用耗材SPD两项标准发布

7月1日,安徽省市场监督管理局发布公示:由国内医用耗材SPD建设标杆医院中国科学技术大学附属第一医院(以下简称“中科大附一院”)牵头制定的《智慧医院医用耗材SPD建设指南》和《智慧医院医用耗材SPD验收规范》两项标准正式获批发布! 智慧医院建设加速推进 耗材管理大势所趋 近年来,国家先后发布各项政策鼓励开展智慧医院建设。2019年,国家卫生健康委明确将智慧医院评价分为智慧医