hdu2682
来源:互联网 发布:电子发票 用软件开 编辑:程序博客网 时间:2024/05/18 02:50
Tree
Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2671 Accepted Submission(s): 828
Now we want to connecte all the cities together,and make the cost minimal.
Each case begin with a integer N,then N integer Vi(0<=Vi<=1000000).
251234544444
4-1
AC代码:
#include<stdio.h> #include<cmath>#include<math.h>#include<string.h>#include<stdlib.h>int vi[611]; int prime[2000111]; struct A { int a,b; int len; }eage[180000]; int tot; //并查集 int set[611]; void build(int n) { int i; for(i=0;i<n;i++) set[i]=i; } int find(int k) { if(set[k]==k) return k; set[k]=find(set[k]); return set[k]; } void Union(int f1,int f2) { set[f1]=f2; } int MIN(int a,int b) { return a>b?b:a; } int cmp(const void *a,const void *b) { struct A *c,*d; c=(struct A *)a; d=(struct A *)b; return c->len-d->len; } int main() { int T,n,i,l,temp,f1,f2,cost; memset(prime,-1,sizeof(prime)); prime[0]=prime[1]=0; for(i=2;i<=2000000;i++) { if(prime[i]==-1) { for(temp=2*i;temp<=2000000;temp+=i) prime[temp]=0; } } scanf("%d",&T); while(T--) { scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&vi[i]); tot=0; for(i=0;i<n;i++) for(l=i+1;l<n;l++) { if(prime[vi[i]] || prime[vi[l]] || prime[vi[i]+vi[l]]) { eage[tot].a=i; eage[tot].b=l; eage[tot].len=MIN(vi[i],MIN(vi[l],abs(vi[i]-vi[l]))); tot++; } } qsort(eage,tot,sizeof(eage[0]),cmp); cost=0; build(n); for(i=0;i<tot;i++) { f1=find(eage[i].a); f2=find(eage[i].b); if(f1==f2) continue; cost+=eage[i].len; Union(f1,f2); } temp=0; for(i=0;i<n;i++) if(set[i]==i) temp++; if(temp>1) printf("-1\n"); else printf("%d\n",cost); } return 0; }
- hdu2682
- hdu2682
- hdu2682
- HDU2682 Tree
- hdu2682 Tree (prim)
- hdu2682 最小生成树
- hdu2682之最小生成树
- hdu2682 Tree(prim模板)
- HDU2682 Tree 最小生成树
- hdu2682 TREE 素数,最小生成树
- HDU2682 Tree 题解 【最小生成树】【图论】【Kruskal】
- Uva1593 代码对齐
- poj 图相关之3041 Asteroids
- MarkDown基础
- Redis 安装启动相关知识
- Redis的基本命令
- hdu2682
- C++模块化思想的应用
- Day17-request
- CentOS7 安装配置 MySQL5.7.18
- 文章标题
- LinkedHashMap、HashMap、Hashtable、TreeMap的比较使用
- 快速排序--基准定位,分而治之
- 如何生成war包
- Dagger2的使用与理解(4)