STL写的大根堆一直错
#include<bits/stdc++.h>
using namespace std;
struct node{
int u,v,w;
friend bool operator >(node a,node b){
return a.w>b.w;
}
friend bool operator <(node a,node b){
return a.w<b.w;
}
};
priority_queue<node, vector<node>, greater<node>> e;//这一行一直报错
map<int,bool>w,s;
int z,ans;
int main(){
scanf("%d",&z);
for(int i=1;i<=z;i++){
for(int j=1;j<=z;j++){
if(w[i*1000+j==true]||w[j*1000+i]==true) continue;
node q;
scanf("%d",q.w);
q.u=i,q.v=j;
e.push(q);
w[i*1000+j]=true,w[j*1000+i]=true;
}
}
for(int i=1;i<=z-1;i++){
node x=e.top();
e.pop();
while(s[x.u]==true&&s[x.v]==true){
x=e.top();
e.pop();
}
ans+=x.w;
s[x.u]=true,s[x.v]=true;
}
printf("%d",ans);
return 0;
}