关于旅游网站建设的方案,网站有什么类型,wordpress 微信公众,苏州网站推广工具题目大意#xff1a; 让你输入n,然后输入n组数据#xff0c;表示a与b的关系#xff0c;最后求出关系最多一组的个数。注意#xff08;a与b有关系#xff0c;b与c有关系#xff0c;那么a与c就有关系#xff09; 解题思路#xff1a; 并查集#xff0c;…题目大意 让你输入n,然后输入n组数据表示a与b的关系最后求出关系最多一组的个数。注意a与b有关系b与c有关系那么a与c就有关系 解题思路 并查集开一个结构体用来存储以当前节点为跟节点的数目最后再历遍一次就可以得到最大值了。 吐吐槽 有点儿蛋疼遇到了2个疼疼的问题本来这是一道模板题啊唉问题1交这道题目的时候一交TLE了疼没有改再交居然ac了而且时间为600ms,这……瞬间斯巴达化~ 问题2这个有点儿严重我在程序里面一边算并查集的num的时候顺便求最大值这样错必须在最后从1-MAX历遍一遍求最大值这是为毛现在没时间留着问题明天慢慢啃吧。。 #include
using namespace std;
const int MAX10000005;
typedef struct n
{int pre;int num;n(int a1) :num(a) {}
}N;N pe[MAX];
int find(int x)
{int rx,j;while(pe[r].pre!r)rpe[r].pre;while(pe[x].pre!r){jpe[x].pre;pe[x].prer;xj;}return r;
}
//int find(int x)//查
//{
// if(x!pe[x].pre)
// {
// pe[x].prefind(pe[x].pre);
// }//回溯
// return pe[x].pre;
//}
void init()
{for(int i0;in){init();int max-1; for(i1;in;i){cinab;int f1find(a);int f2find(b);if(f1!f2){pe[f2].pref1;pe[f1].numpe[f2].num;}/* if(pe[f1].nummax)//为什么不能这样求最大值还是搞不懂maxpe[f1].num;*/}for(i1;imax)maxpe[i].num;}cout转载于:https://www.cnblogs.com/cchun/archive/2011/11/09/2520179.html