网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
**Hints:**
A solution *A* is a line of *p* integers: *a1*, *a2*, ...*ap*.
Another solution *B* different from *A* is a line of *q* integers: *b1*, *b2*, ...*bq*.
*A* is **lexicographically smaller** than *B* if and only if:
(1) there exists a positive integer *r* (*r* <= *p*, *r* <= *q*) such that *ai* = *bi* for all 0 < *i* < *r* and *ar* < *br*
**OR**
(2) *p* < *q* and *ai* = *bi* for all 0 < *i* <= *p*
---
Author: **CAO, Peng**
Source: **The 6th Zhejiang Provincial Collegiate Programming Contest**
题目意思很简单,就是直接最小生成树,只是要处理一下输出的顺序。(用了下pair 做简化)
#include
#include
#include
#include
bool cmp(Edge a,Edge b)
{
if(a.w != b.w)
return a.w < b.w;
else if(a.u != b.u)
return a.u < b.u;
else
return a.v < b.v;
}
pair<int,int> ans[105]; //用到pair ,默认就是先按照first再是second
void kruscal()
{
sort(G,G+cnt,cmp);
for(int i=0; i < cnt; i++)
{
if(find_f(G[i].u) != find_f(G[i].v))
{
ans[cnt1++]=make_pair(G[i].u,G[i].v);
f[find_f(G[i].u)]=find_f(G[i].v);
}
}
}
int main()
{
int t;
cin>>t;
while(t–){
int n;
cin>>n;
cnt=0;
cnt1=0;
for(int i=1;i<=n;i++)
f[i]=i;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
int x;
scanf(“%d”,&x);
Edge s;
s.u=i+1;
s.v=j+1;
s.w=x;
if(i<j&&x)
G[cnt++]=s;
}
}
kruscal();
if(cnt1!=n-1)
{
printf("-1\n");
}
else
{
sort(ans,ans+cnt1);
for(int i = 0; i < cnt1-1; i++)
printf("%d %d ",ans[i].first,ans[i].second);
printf("%d %d\n",ans[cnt1-1].first,ans[cnt1-1].second);
}
}
return 0;
}
![img](https://img-blog.csdnimg.cn/img_convert/b568ccebf78da3d1274f2c074f3ec336.png)
![img](https://img-blog.csdnimg.cn/img_convert/801718f6570d700829d8d2a5d418839d.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618668825)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
里获取](https://bbs.csdn.net/topics/618668825)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**