• hdu 2682


    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    #include<math.h>
    #define N  700
    #define NN 2000010
    int prime[NN];
    int a[N];
    struct node {
    int x,y,w;
    }ma[N*N];
    void ispri() {
      int i,j;
      memset(prime,-1,sizeof(prime));
      prime[0]=1;
      prime[1]=1;
      for(i=2;i<=1500;i++)
      if(prime[i]==-1) {
        for(j=i*2;j<=2000000;j+=i)
            prime[j]=1;
      }
     /* int k=0;
      for(i=2;i<=1000000;i++)
        if(prime[i]==-1) {
        k++;
        printf("%d ",i);
        }
      printf("%d ",k);*/
    }
    int pre[N];
    int find(int x) {
    if(x!=pre[x])
    pre[x]=find(pre[x]);
    return pre[x];
    }
    int cmp(const void *a,const void *b) {
    return (*(struct node *)a).w-(*(struct node *)b).w;
    }
    int MIN(int a,int b) {
    return a>b?b:a;
    }
    int main() {
        int n,i,j,k,t,ans,len,aa,bb;
        ispri();
        scanf("%d",&t);
        while(t--) {
            scanf("%d",&n);
            for(i=1;i<=n;i++)
                pre[i]=i;
            for(i=1;i<=n;i++)
                scanf("%d",&a[i]);
                len=0;
                for(i=1;i<=n;i++)
                    for(j=i+1;j<=n;j++)
                    if(prime[a[i]]==-1||prime[a[j]]==-1||prime[a[i]+a[j]]==-1)
                        ma[len].x=i,ma[len].y=j,ma[len++].w=MIN(MIN(a[i],a[j]),fabs(a[i]-a[j]));
                        qsort(ma,len,sizeof(ma[0]),cmp);
                     /*   for(i=0;i<len;i++)
                            printf("%d ",ma[i].w);*/
                    ans=0;k=0;
            for(i=0;i<len&&k<n-1;i++) {
                aa=find(ma[i].x);
                bb=find(ma[i].y);
                if(aa!=bb) {
                    pre[aa]=bb;
                    ans+=ma[i].w;
                    k++;
                }
            }
            if(k==n-1)
                printf("%d ",ans);
            else
                printf("-1 ");
         }


    return 0;
    }
  • 相关阅读:
    算法模板——线性欧拉函数
    2818: Gcd
    1688: [Usaco2005 Open]Disease Manangement 疾病管理
    3314: [Usaco2013 Nov]Crowded Cows
    3450: Tyvj1952 Easy
    1664: [Usaco2006 Open]County Fair Events 参加节日庆祝
    1054: [HAOI2008]移动玩具
    1432: [ZJOI2009]Function
    1121: [POI2008]激光发射器SZK
    1113: [Poi2008]海报PLA
  • 原文地址:https://www.cnblogs.com/thefirstfeeling/p/4410744.html
Copyright © 2020-2023  润新知