bzoj2429 [HAOI2006]聪明的猴子(prim)
来源:互联网 发布:歼十模型淘宝 编辑:程序博客网 时间:2024/05/22 16:52
就是求最大边最小,就是最小生成树,prim应该更快些
#include <bits/stdc++.h>using namespace std;#define ll long long#define inf 0x3f3f3f3f#define N 1010#define M 510#define pa pair<int,int>inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return x*f;}int m,n,a[M],d[N],ans=0;bool vis[N];struct point{ int x,y;}p[N];void prim(){ priority_queue<pa,vector<pa>,greater<pa> >q;memset(d,0x3f,sizeof(d)); d[1]=0;q.push(make_pair(0,1)); while(!q.empty()){ int x=q.top().second;q.pop();if(vis[x]) continue; vis[x]=1;ans=max(ans,d[x]); for(int i=1;i<=n;++i){ if(vis[i]) continue; int dy=(p[i].x-p[x].x)*(p[i].x-p[x].x)+(p[i].y-p[x].y)*(p[i].y-p[x].y); if(dy<d[i]){d[i]=dy;q.push(make_pair(d[i],i));} } }}int main(){// freopen("a.in","r",stdin); m=read();for(int i=1;i<=m;++i) a[i]=read(); n=read(); for(int i=1;i<=n;++i) p[i].x=read(),p[i].y=read(); prim();int res=0; for(int i=1;i<=m;++i) if(a[i]*a[i]>=ans) res++; printf("%d\n",res); return 0;}
阅读全文
0 0
- bzoj2429 [HAOI2006]聪明的猴子(prim)
- bzoj2429: [HAOI2006]聪明的猴子
- BZOJ2429 :[HAOI2006]聪明的猴子
- 【bzoj2429】[HAOI2006]聪明的猴子
- BZOJ2429: [HAOI2006]聪明的猴子 kruskal
- [bzoj2429][HAOI2006]聪明的猴子 kruskal
- 【BZOJ2429】[HAOI2006]聪明的猴子【最小生成树】
- BZOJ2429[HAOI2006]聪明的猴子(最小生成树)
- BZOJ 2429 [HAOI2006]聪明的猴子 最小生成树 Prim
- BZOJ2429 聪明的猴子 (洛谷P2504)
- 【BZOJ2429】【MST】聪明的猴子 题解
- [bzoj2429][最小生成树]聪明的猴子
- 2429: [HAOI2006]聪明的猴子
- 2429: [HAOI2006]聪明的猴子
- 2429: [HAOI2006]聪明的猴子
- 【bzoj2429】【HAOI2429】【聪明的猴子】【最小生成树】
- 2429: [HAOI2006]聪明的猴子 (生成树)
- BZOJ 2429: [HAOI2006]聪明的猴子
- 纯虚函数的调用
- git常见问题
- linux系统操作基础及基本命令的运用
- (二)互联网分布式企业微服务云架构
- C++11
- bzoj2429 [HAOI2006]聪明的猴子(prim)
- matplotlib的简单应用
- glide加载gif动态图
- Tomcat简介
- Python(4) 序列
- c0201时遇到的问题
- Python(5) 面向对象相关
- impdp或expdp报错ORA-39002: invalid operation,ORA-39070: Unable to open the log file
- Python(6) 异常处理