91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2KB
    文件類型: .c
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-05-16
  • 語言: 其他
  • 標簽: PAT??

資源簡介

PAT頂級題目題解,用到的算法為并查集。去掉某一個城市,先利用正在使用的公路,對各個城市進行合并。然后利用被摧毀的公路,對城市進行合并,并把所需的修復費用進行加和。

資源截圖

代碼片段和文件信息

#include
#include
#define?inf?9999999

typedef?struct
{
????int?city1city2coststatus;
}*HighwayHNode;

Highway?H;

int?nm*f*costmaxcost;

int?cmp(const?void?*aconst?void?*b)
{
????Highway?A=(Highway)a;?Highway?B=(Highway)b;
????if(A->status!=B->status)
????????return?B->status-A->status;
????else
????????return?A->cost-B->cost;
}

void?initial()
{
????int?i;
????for(i=1;i<=n;i++)
????????f[i]=i;
}

int?findfather(int?x)
{
????if(f[x]==x)
????????return?x;
????else?return?f[x]=findfather(f[x]);
}

void?Union(int?xint?y)
{
????int?fx=findfather(x);
????int?fy=findfather(y);
????if(fx==fy)
????????return?;
????f[fx]=fy;
}

int?main()
{
????scanf(“%d%d“&n&m);
????f=malloc(sizeof(int)*(n+1));
????cost=malloc(sizeof(int)*(n+1));
????H=malloc(sizeof(HNode)*m);

????int?i;
????for(i=1;i<=n;i++)
????????{f[i]=i;cost[i]=0;}
????for(i=0;i????????scanf(“%d%d%d%d“&H[i].city1&H[i].city2&H[i].cost&H[i].status);

????qsort(Hmsizeof(HNode)cmp);

????int?jk;
????//printf(“1\n“);
????for(i=1maxcost=0;i<=n;i++)?//if?city_i?is?conquered

評論

共有 條評論