编译错误,引用歧义
  • 板块P1551 亲戚
  • 楼主BeingErnest
  • 当前回复9
  • 已保存回复9
  • 发布时间2022/11/4 10:06
  • 上次更新2023/10/27 04:21:42
查看原帖
编译错误,引用歧义
67249
BeingErnest楼主2022/11/4 10:06

编译的时候显示rank的引用有歧义,本地是可以编译通过

#include<cstdio>
#include<string.h>
#include<algorithm>
using namespace std;
typedef struct hate
{
	int a,b,v;
}NODE;
NODE p[100005];
int cmp(NODE a,NODE b)
{
	return a.v>b.v;
}
int rank[40005],father[40005];
int find(int x)
{
	return father[x]==x?x:(father[x]=find(father[x]));
}
void merge(int i,int j)
{
	int x=find(i),y=find(j);
	if(rank[x]<=rank[y]) father[x]=y;
	else father[y]=x;
	if(rank[x]==rank[y]&&x!=y)	rank[y]++;
}
int main()
{
	int n,m;
	scanf("%d%d",&n,&m);
	memset(rank,1,sizeof(int)*(2*n+2));
	for(int i=1;i<=n*2;i++)
	{
		father[i]=i;
	}
	for(int i=1;i<=m;i++)
	{
		scanf("%d%d%d",&p[i].a,&p[i].b,&p[i].v);
	}
	sort(p+1,p+m+1,cmp);
	for(int i=1;i<=m;i++)
	{
		if(find(p[i].a)==find(p[i].b))
		{
			printf("%d",p[i].v);
			return 0;
		}
		else
		{
			merge(p[i].a,p[i].b+n);
			merge(p[i].b,p[i].a+n);
		}
	}
	printf("0");
	return 0;
}
2022/11/4 10:06
加载中...