ABC378
🕗 发布于 2024-11-07 14:06 c++ 算法
F - Add One Edge 2
题意:一颗有n个顶点的树,第i条边双向连接顶点ui和vi,在给定的树上添加一条不定向边,总能得到一个正好有一个循环的图。在这些图中,有多少个满足所有顶点都有阶数3
分析:每次阶数为3的dfs找阶数为2的个数,两个阶数为2的即可凑出循环图,所以满足条件的个数为cnt*(cnt-1)/2
代码:
#include<bits/stdc++.h>
using namespace std;
#define int long long
typedef long long ll;
const int N=2e5+10;
vector<int>G[N];
int n;
int deg[N];
bool vis[N];
int cnt=0;
ll ans=0;
void dfs(int v,int fa=0){//无父节点 fa=0作初始值
if(deg[v] != 3){//由于作为可连接的点 可能连接了多个联通块不打标记
cnt += (deg[v]==2);
return;
}
vis[v] = 1;
for(auto x:G[v]){//x是节点v相连的
if(x == fa) continue;
dfs(x,v);
}
}
void sol(){
cin>>n;
for(int i = 1;i < n;++i){
int u,v;
cin>>u>>v;
G[u].push_back(v);
G[v].push_back(u);
++deg[u];++deg[v];
}
for(int i=1;i<=n;++i){
// 找 deg=3 的连通块
if(deg[i] != 3) continue;
if(vis[i]) continue;
cnt = 0;
dfs(i);
ans += cnt*(cnt-1)/2;
}
cout<<ans<<"\n";
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
int t;t=1;
for(int i=1;i<=t;i++)sol();
return 0;
}
原文地址:https://blog.csdn.net/m0_74310050/article/details/143576805
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!
-
浏览器内置对象XMLHttpRequest
XMLHttpRequest 是浏览器提供的一个强大工具,使得开发者可以在不刷新页面的情况下,与服务器进行数据交互。它支持多种数据格式,并且以异步方式工作,极大地增强了 Web 应用的交互性和响应性。
阅读更多2024-11-08
-
Ubuntu使用Qt虚拟键盘,支持中英文切换
最近领导给了个需求,希望将web嵌入到客户端里面,做一个客户端外壳,可以控制程序的启动、停止、重启,并且可以调出键盘在触摸屏上使用(我们的程序虽然是BS架构,但程序还是运行在本地工控机上的),我研
阅读更多2024-11-08
-
C++数据类型
C++定义了算数类型和空类型在内的基本数据类型。空类型不对应具体的值,仅用在特殊场合,如:函数返回值。
阅读更多2024-11-08
-
【JS】字符串方法速览
返回字符串中指定索引的字符 unicode 编码。方法搜索特定值的字符串,并返回匹配的位置。返回字符串中指定下标(位置)的字符串。未完,有空再更~~~~~~~
阅读更多2024-11-08
-
第二十六章 Vue之在当前组件范围内获取dom元素和组件实例
我们过去在想要获取一个dom元素的时候,一般会使用到document.querySelector('class样式')这种全页面范围的查找方式。如果在页面比较复杂(如有多个组件且可能存在相同样式)的情
阅读更多2024-11-08
-
STL标准模板库详解-1
STL分为容器、迭代器、算法、函数对象和适配器等;容器:存储数据的序列。
阅读更多2024-11-08
-
C#笔记 —— 事件
访问修饰符 + event + 委托类型 + 事件名;例: public event Action myEvent;
阅读更多2024-11-08
-
【C++】socket套接字编程
IP 地址的意义就是标识公网内唯一一台主机。传输层协议(TCP 和 UDP)的数据段中也有两个端口号, 分别叫做源端口号和目的端口号.,它们描述 “数据是那个进程发送的, 要发给另外那个进程”。
阅读更多2024-11-08
-
tomato靶机
如果allow_url_fopen和allow_url_include同时是On状态,同时开着那就是远程文件上传包含漏洞。allow_url_fopen是On状态,打开着有可能是文件包含漏洞,而且是本
阅读更多2024-11-08
-
IP协议知识点总结
IP协议主要分为三个每个网络上的设备, 要能分配一个的地址小A 给小B 发消息, 具体应该IP 地址. 本质上是一个位的整数通常将, 32 位的整数使用点分十进制来表示, 如 192.168.1.1一
阅读更多2024-11-08