为啥一直报错啊
  • 板块学术版
  • 楼主tian_jun_cheng
  • 当前回复6
  • 已保存回复6
  • 发布时间2022/5/15 18:37
  • 上次更新2023/10/28 01:21:24
查看原帖
为啥一直报错啊
377434
tian_jun_cheng楼主2022/5/15 18:37
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<cstdlib>
#include<queue>
using namespace std;
struct node{
	int a,b,m;
}d[100001];
int a[100001],h[100001];
struct nn{
	int id,v;
};
priority_queue <nn> q; 
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	for(int i=2;i<=n;i++)
	{
		int x;
		cin>>x;
		d[i].a=x;
		d[i].b=i;
		d[i].m=h[x];
		h[x]=i;
	}
	q.push((nn){1,a[1]});
	int minn=2147483647;
	int cnt=1;
	while(!q.empty())
	{
		int t=q.top().v;
		int p=q.top().id;
		q.pop();
		cnt--;
		if(minn>t*cnt)
			minn=t*cnt;
		if(!h[p])
			break;
		for(int i=h[p];i;i=d[i].m)
			q.push((nn){d[i].b,a[d[i].b]}),cnt++;
	}
	cout<<minn;
	return 0;
}

[Error] no match for 'operator<' (operand types are 'const nn' and 'const nn')

2022/5/15 18:37
加载中...