超级大水题,只比模板多了一个坐标操作!!!
题目大意:
1、坐标上有n个点,求最小生成树的边权最大值maxx。
2、求m只猴子,跳跃距离大于maxx的个数。
解题思路:
1、坐标上求距离,记得用double
2、跑最小生成树,然后逐一比较。
上代码:
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
const int mx=2005;
int m,n,maxx=0,len=0,f[mx];
double bj[mx];
struct nodb{int x,y;double c;}b[mx],e[mx*1000];
struct nodz{double x,y; }z[mx];
bool cmp(nodb x,nodb y) { return x.c<y.c; }
int ch(int x) { if(x==f[x]) return x; return f[x]=ch(f[x]); }
void ins(int x,int y)
{
double t=sqrt((z[x].x-z[y].x)*(z[x].x-z[y].x)+(z[x].y-z[y].y)*(z[x].y-z[