每个图里面有很多的点和边,每个点有各种颜色,求相邻颜色最多的颜色
用一个set容器来记录每种颜色相邻的颜色
#include <iostream>
#include <cstdio>
#include <vector>
#include <queue>
#include<set>
using namespace std;
int c[100005];
set<int> lw[100005];
int n,m,ans=100000,x,y;
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>c[i];
ans=min(ans,c[i]);
}
for(int i=1;i<=m;i++)
{
cin>>x>>y;
if(c[x]!=c[y])
{
lw[c[x]].insert(c[y]);
lw[c[y]].insert(c[x]);
}
}
for(int i=1;i<=100000;i++)
{
if( lw[ans].size() < lw[i].size() )
{
ans=i;
}
}
cout<<ans<<endl;
}
本文介绍了一种基于图论的算法,通过使用set容器记录每种颜色节点相邻的颜色种类数量,找出相邻颜色最多的颜色。该算法适用于解决图中颜色邻接问题。
183

被折叠的 条评论
为什么被折叠?



