E - Reachability in Functional Graph

news/2024/10/6 6:47:33

E - Reachability in Functional Graph

https://atcoder.jp/contests/abc357/tasks/abc357_e

 

思路

概念:

基环树-内生树。

https://www.cnblogs.com/Dfkuaid-210/p/14696378.html


方法:

使用拓扑排序,从入度为0的点开始,依此从外层向内层拆点,直到剩下环, 拆换过程中把拆掉的size记到目标点上size,依次累计到环点上。

最后统计环点上的所有点的size之和。

 

 


 

 

 

Code

https://atcoder.jp/contests/abc357/submissions/54442574

#include <bits/stdc++.h>
using namespace std;
#define int long long
int to[200005],deg[200005],sz[200005];
vector<int>v;
int sum=0;
void dfs(int u){deg[u]=0;v.push_back(u);sum+=sz[u];if(deg[to[u]])dfs(to[u]);
}
signed main(){int n;cin>>n;queue<int>q;for(int i=1;i<=n;i++)cin>>to[i],sz[i]=1,deg[to[i]]++;for(int i=1;i<=n;i++)if(deg[i]==0)q.push(i);while(!q.empty()){int u=q.front();q.pop();deg[to[u]]--;sz[to[u]]+=sz[u];if(deg[to[u]]==0){q.push(to[u]);}}for(int i=1;i<=n;i++){if(deg[i]){sum=0;v.clear();dfs(i);for(int a:v)sz[a]=sum;}}int ans=0;for(int i=1;i<=n;i++){ans+=sz[i];}cout<<ans;
}
/*
things to check
0.delete cerr code or use '//'
1.initallize(especially multicases)
2.int overflow/long long mle
3.if make the ans is hard , try 2-divided
4.memory &b-&a
5.function canshu position
6.the format of input
7.size enough ?
8.the name of function
9.stop copying x0->y0
*/

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hjln.cn/news/43076.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

SRE 排障利器,接口请求超时试试 httpstat

夜莺资深用户群有人推荐的一个工具,看了一下真挺好的,也推荐给大家。 需求场景 A 服务调用 B 服务的 HTTP 接口,发现 B 服务返回超时,不确定是网络的问题还是 B 服务的问题,需要排查。 工具简介 就类似 curl,httpstat 也可以请求某个后端,而且可以把各个阶段的耗时都展示…

文件传输系统主要用于哪些场景?要如何选型?

文件传输系统是一种用于在不同设备、网络或地理位置之间传输文件的产品解决方案,在各行各业中的应用还是很广泛的。文件传输系统可以应用于多种场景,主要包括: 1、企业内部文件共享:在公司内部不同部门或团队之间共享文件,如项目文档、报告、设计图纸等。 2、远程办公:支…

java小记-三元运算符

①三元运算符: 之前之后:格式:范例:

CentOS7操作-配置镜像源

CentOS7操作-配置镜像源 在公司项目的后续开发中,需要使用CentOS7进行项目的开发环境搭建,所以在这里记录一下CentOS7配置镜像源的方法。 设置阿里镜像源 首先ping一下阿里源地址,如果可以的话再进行配置 ping mirrors.aliyun.com可以看到,地址是连通的。 手动配置阿里云源…

你的智能汽车正在窥视你!

你的数据,价值千万2021年8月,蔚来部分用户数据被窃取,并遭到勒索225万美元等额比特币; 2022年5月,通用汽车表示部分在线客户账户出现异常登录; 2023年5月,丰田云服务导致215万日本用户车辆数据承担泄露风险; 2024年4月,高合汽车因车内摄像头拍摄的不雅影像泄露而备受关…

腾讯云 BI 数据分析与可视化的快速入门指南

通过本文的介绍,我们了解了腾讯云 BI 这款商业智能解决方案的基本功能和应用场景。从创建项目、连接数据源、数据表建模到页面搭建和推送功能的设置,我们通过一个互联网运营看板的案例,展示了如何快速入门并利用腾讯云 BI 进行数据分析和可视化。通过简单的数据编辑,我们可…

STM32 + RT-Thread + LVGL

一、基本信息MCU:STM32F103ZET6 RT-Thread:5.0.2 LVGL:8.3.11 LCD:ST7735s 编译环境:RTThread studio二、LVGL 移植要求16、32或64位微控制器或处理器 建议速度大于16 MHz 闪存/ROM: > 64 kB(建议180 kB) 内存:8 kB(建议24 kB) 1个帧缓冲器:在MCU、外部RAM或显示控制器…

分布式链路跟踪 Jaeger

分布式应用环境下,事务的完成需要由多个不同的组件协调完成,调用链路比较复杂,问题的定位也不再像原来单体应用这么复杂。 我们采用分布式应用链路跟踪工具完成对事务的跟踪和问题的定位。 Jaeger,jaeger在BIG-IP Next的AS3 实现中有用到。 本质上讲,像Jaeger这样的跟踪工…