SSL 1759 连通分量(七种做法)

2023-10-22 18:10

本文主要是介绍SSL 1759 连通分量(七种做法),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述:

在这里插入图片描述


解题思路:

首先需要有前置知识,在无向图中,联通分量表示最大联通子图中的节点个数
然后我们考虑多种做法。

  • 做法一: d f s + dfs+ dfs+ 邻接矩阵
#include <iostream>
#include <cstring>
using namespace std;
int n,g[1001][1001]={0},sum;
bool vis[100010]={false};
int dfs(int x)
{vis[x]=true;for(int i=1;i<=n;i++)if(!vis[i]&&g[x][i])sum++,dfs(i);return sum;
} 
int main()
{cin>>n;int x,y;cin>>x>>y;while(x&&y){g[x][y]=1;g[y][x]=1;cin>>x>>y;}int ans=0;for(int i=1;i<=n;i++){sum=1;if(vis[i]) continue;ans=max(ans,dfs(i));}cout<<ans;return 0;
} 
  • 做法二: d f s + dfs+ dfs+ 链式前向星
#include <iostream>
#include <cstring>
using namespace std;
int n,sum,tot=0;
int head[100010]={0};
struct node
{int y,next;
} e[100010];
bool vis[100010]={false};
int dfs(int x)
{vis[x]=true;for(int i=head[x];i;i=e[i].next)if(!vis[e[i].y])sum++,dfs(e[i].y);return sum;
} 
int main()
{cin>>n;int x,y;cin>>x>>y;while(x&&y){tot++;e[tot]=(node){y,head[x]},head[x]=tot;tot++;e[tot]=(node){x,head[y]},head[y]=tot;cin>>x>>y;}int ans=0;for(int i=1;i<=n;i++){sum=1;if(vis[i]) continue;ans=max(ans,dfs(i));}cout<<ans;return 0;
} 
  • 做法三: d f s + dfs+ dfs+ 邻接表(vector)
#include <iostream>
#include <cstring>
#include <vector>
using namespace std;
int n,sum;
vector<int> g[100010];
bool vis[100010]={false};
int dfs(int x)
{vis[x]=true;for(int i=0;i<g[x].size();i++)if(!vis[g[x][i]])sum++,dfs(g[x][i]);return sum;
} 
int main()
{cin>>n;int x,y;cin>>x>>y;while(x&&y){g[x].push_back(y);g[y].push_back(x);cin>>x>>y;}int ans=0;for(int i=1;i<=n;i++){sum=1;if(vis[i]) continue;ans=max(ans,dfs(i));}cout<<ans;return 0;
} 
  • 做法四: b f s + bfs+ bfs+ 邻接矩阵
#include <iostream>
#include <cstring>
#include <vector>
#include <queue>
using namespace std;
int n,sum;
int g[1001][1001]={0};
int q[100010]={0},h=1,t=1;
bool vis[100010]={false};
int bfs(int x)
{vis[x]=true;q[t]=x;t++;while(h<t){int u=q[h];h++;for(int i=1;i<=n;i++)if(!vis[i]&&g[u][i]==1)sum++,vis[i]=true,q[t]=i,t++;}return sum;
} 
int main()
{cin>>n;int x,y;cin>>x>>y;while(x&&y){g[x][y]=1;g[y][x]=1;cin>>x>>y;}int ans=0;for(int i=1;i<=n;i++){sum=1;if(vis[i]) continue;ans=max(ans,bfs(i));}cout<<ans;return 0;
} 
  • 做法五: b f s + bfs+ bfs+ 链式前向星
#include <iostream>
#include <cstring>
#include <vector>
#include <queue>
using namespace std;
int n,sum;
int head[100010]={0},tot=0;
struct node
{int y,next;
} e[100010];
int q[100010]={0},h=1,t=1;
bool vis[100010]={false};
int bfs(int x)
{vis[x]=true;q[t]=x;t++;while(h<t){int u=q[h];h++;for(int i=head[u];i;i=e[i].next)if(!vis[e[i].y])sum++,vis[e[i].y]=true,q[t]=e[i].y,t++;}return sum;
} 
int main()
{cin>>n;int x,y;cin>>x>>y;while(x&&y){tot++;e[tot]=(node){y,head[x]},head[x]=tot;tot++;e[tot]=(node){x,head[y]},head[y]=tot;cin>>x>>y;}int ans=0;for(int i=1;i<=n;i++){sum=1;if(vis[i]) continue;ans=max(ans,bfs(i));}cout<<ans;return 0;
} 
  • 做法六: b f s + bfs+ bfs+邻接表
#include <iostream>
#include <cstring>
#include <vector>
#include <queue>
using namespace std;
int n,sum;
int q[100010]={0},h=1,t=1; 
vector<int> g[100010];
bool vis[100010]={false};
int bfs(int x)
{vis[x]=true;q[t]=x;t++;while(h<t){int u=q[h];h++;for(int i=0;i<g[u].size();i++)if(!vis[g[u][i]])sum++,vis[g[u][i]]=true,q[t]=g[u][i],t++;}return sum;
} 
int main()
{cin>>n;int x,y;cin>>x>>y;while(x&&y){g[x].push_back(y);g[y].push_back(x);cin>>x>>y;}int ans=0;for(int i=1;i<=n;i++){sum=1;if(vis[i]) continue;ans=max(ans,bfs(i));}cout<<ans;return 0;
} 
  • 做法七: b f s + bfs+ bfs+ 邻接表 + + + queue
#include <iostream>
#include <cstring>
#include <vector>
#include <queue>
using namespace std;
int n,sum;
queue<int> q;
vector<int> g[100010];
bool vis[100010]={false};
int bfs(int x)
{vis[x]=true;q.push(x);while(!q.empty()){int u=q.front();q.pop();for(int i=0;i<g[u].size();i++)if(!vis[g[u][i]])sum++,vis[g[u][i]]=true,q.push(g[u][i]);}return sum;
} 
int main()
{cin>>n;int x,y;cin>>x>>y;while(x&&y){g[x].push_back(y);g[y].push_back(x);cin>>x>>y;}int ans=0;for(int i=1;i<=n;i++){sum=1;if(vis[i]) continue;ans=max(ans,bfs(i));}cout<<ans;return 0;
} 

都是版子。

这篇关于SSL 1759 连通分量(七种做法)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

线性因子模型 - 独立分量分析(ICA)篇

序言 线性因子模型是数据分析与机器学习中的一类重要模型,它们通过引入潜变量( latent variables \text{latent variables} latent variables)来更好地表征数据。其中,独立分量分析( ICA \text{ICA} ICA)作为线性因子模型的一种,以其独特的视角和广泛的应用领域而备受关注。 ICA \text{ICA} ICA旨在将观察到的复杂信号

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法   消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法 [转载]原地址:http://blog.csdn.net/x605940745/article/details/17911115 消除SDK更新时的“

Android逆向(反调,脱壳,过ssl证书脚本)

文章目录 总结 基础Android基础工具 定位关键代码页面activity定位数据包参数定位堆栈追踪 编写反调脱壳好用的脚本过ssl证书校验抓包反调的脚本打印堆栈bilibili反调的脚本 总结 暑假做了两个月的Android逆向,记录一下自己学到的东西。对于app渗透有了一些思路。 这两个月主要做的是代码分析,对于分析完后的持久化等没有学习。主要是如何反编译源码,如何找到

828华为云征文|基于Flexus云服务器X实例的应用场景-拥有一款自己的ssl监控工具

先看这里 写在前面效果图华为云Flexus云服务器X实例介绍特点可选配置购买 连接服务器Uptime-kuma简介开源信息部署准备工作:docker部署命令访问uptime-kuma 基本配置总结 写在前面 作为一个个人开发者,相信你手里肯定也有不少自己的服务,有的服务呢也是https的。 以前ssl各厂都是可以免费申请一年的,我们更换的频率还好,比较小;但是最近,各厂都

TLS和SSL的区别比较

1、定义和组成       SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。   TLS:(Transport

MQTT broker搭建并用SSL加密

系统为centos,基于emqx搭建broker,流程参考官方。 安装好后,用ssl加密。 进入/etc/emqx/certs,可以看到 分别为 cacert.pem CA 文件cert.pem 服务端证书key.pem 服务端keyclient-cert.pem 客户端证书client-key.pem 客户端key 编辑emqx配置:vim /etc/emqx/emqx.conf,添加s

数字证书原理(ssl,https)

说明,文章来源 http://www.360doc.com/content/13/0809/14/1073512_305848184.shtml 想要对 ssl和数字证书 有一个全面了解的人仔细阅读这篇文章。 文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释,并讨论一下windows

像素间的关系(邻接、连通、区域、边界、距离定义)

文章目录 像素的相邻像素4邻域D邻域8邻域 邻接、连通、区域和边界邻接类型连通区域边界 距离测度欧氏距离城市街区距离(city-block distance)棋盘距离(chessboard distance) 参考 像素的相邻像素 4邻域 坐标 ( x , y ) (x,y) (x,y)处的像素 p p p有2个水平的相邻像素和2个垂直的相邻像素,它们的坐标是: ( x

【学习笔记】SSL证书安全机制之证书链

前言:CA会给成千上万的Server签发证书,但CA不会直接去签发这么多证书,本篇将给出解释 一、证书链原理解析 我们需知,CA证书预装在浏览器里(不仅仅是浏览器,也可以是一切可以联网的软件);有些时候,操作系统有自己的信任源,软件会用本地的CA证书;无论哪种方式,CA证书是安装在Client的软件里。 如果CA的私钥被泄露了,唯一可以移除对CA的信任的方法是运行某些软件更新。 事实情况是我们

【python requests警告】python3.x requests库取消ssl验证,InsecureRequestWarning: Unverified HTTPS request is be

警告信息: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warni