蜜汁50pts

P2504 [HAOI2006] 聪明的猴子

```cpp #include<bits/stdc++.h> #pragma G++ optimize(2) using namespace std; int monkey; int jump[1005]; int tree; int x[1005]; int y[1005]; double w; int num_edge; struct node{ int from; int to; double w; }edge[1000005]; int fa[1000005]; int f1,f2; int cnt; double maxn; int ans; int find(int x){ if(fa[x]!=x) return fa[x]=find(fa[x]); return x; } void add(int u,int v,double w){ edge[++num_edge].from=u; edge[num_edge].to=v; edge[num_edge].w=w; return; } bool cmp(node a,node b){ return a.w<b.w; } void merge(int x,int y){ fa[x]=y; } signed main(){ // freopen("test.in","r",stdin); // freopen("test.out","w",stdout); ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>monkey; for(int i=1;i<=monkey;i++) cin>>jump[i]; cin>>tree; for(int i=1;i<=tree;i++) fa[i]=i; for(int i=1;i<=tree;i++){ cin>>x[i]>>y[i]; x[i]+=1001; y[i]+=1001; } for(int i=1;i<=tree;i++) for(int j=1;j<=tree;j++){ w=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j])); add(i,j,w); } sort(edge+1,edge+num_edge+1,cmp); // for(int i=1;i<=num_edge;i++){ // cout<<"from "<<edge[i].from; // cout<<" to "<<edge[i].to; // cout<<" dis "<<edge[i].w<<endl; // } for(int i=1;i<=num_edge;i++){ f1=find(edge[i].from); f2=find(edge[i].to); if(f1!=f2){ merge(f1,f2); cnt++; maxn=max(maxn,edge[i].w); } if(cnt==tree-1) break; } if(cnt!=tree-1){ cout<<0; return 0; } for(int i=1;i<=monkey;i++) if(jump[i]>=maxn) ans++; cout<<ans; return 0; } /* */ ``` @[2022zhangyuanhao](/user/746930) 我的代码,仅供参考
by IndifferentBreeze @ 2023-09-25 20:15:21


@[IndifferentBreeze](/user/1009384) HRZ cccccorz
by zyh0516_lucky @ 2023-09-25 22:48:38


@[IndifferentBreeze](/user/1009384) 作业写这么快!
by zyh0516_lucky @ 2023-09-25 22:49:29


@[IndifferentBreeze](/user/1009384) 终于发现错误了!没初始化父数组(吐血!
by zyh0516_lucky @ 2023-09-25 23:12:15


@[2022zhangyuanhao](/user/746930) 之前学生成树的时候碰巧做过,还有以后能不能 @[_Emperorpenguin_](/user/543555) 这个号基本不登
by IndifferentBreeze @ 2023-09-28 22:08:33


@[IndifferentBreeze](/user/1009384) 好的,大号不是被禁言了吗
by zyh0516_lucky @ 2023-09-28 22:21:39


@[2022zhangyuanhao](/user/746930) 容易看到,可以更快回复
by IndifferentBreeze @ 2023-10-01 21:49:03


|