找到相邻颜色最多的颜色。。。STL set的应用
注意一堆0的情况
#include <iostream> #include <cstring> #include <set> using namespace std; int n,m; int c[111111]; set<int>st[111111]; int main() { cin>>n>>m; int ans=100000; for (int i=1;i<=n;i++) { cin>>c[i]; ans=min(ans,c[i]); } for (int i=1;i<=m;i++) { int a,b; cin>>a>>b; if (c[a]!=c[b]) { st[c[a]].insert(c[b]); st[c[b]].insert(c[a]); } } for (int i=1;i<=100000;i++) { if ( ans==-1||st[i].size()>st[ans].size()) { ans=i; } } cout<<ans<<endl; return 0; }