F Teen Girl Squad 朱劉演算法

2021-08-10 09:29:09 字數 1252 閱讀 2065

f - teen girl squad

題目主要是最小樹形圖, 用朱劉演算法求解。

#include 

#include

#include

#include

using

namespace

std;

const

int inf = 0x3f3f3f3f;

const

int maxn = 1005;

struct nede

edge[maxn*maxn];

int pre[maxn], visit[maxn], id[maxn];

double in[maxn];

int zhuliu(int root, int n, int m)

}for(int i=0; i//遍歷每乙個節點

memset(id, -1, sizeof(id));//記錄環的標號

memset(visit, -1, sizeof(visit));//是否訪問過

int tn = 0;//環數

in[root] = 0;//根節點清零

for(int i=0; i//遍歷每個節點,求最短弧的集合

if(id[v]==-1&&v!=root)

id[v] = tn++;}}

if(tn==0)//沒有環出現,則找到了最小樹形圖

break;//跳出

for(int i=0; i//收縮有向環

}for(int i=0; i// int u = edge[i].u;

edge[i].u = id[edge[i].u];

edge[i].v = id[edge[i].v];

if(edge[i].u!=edge[i].v)

edge[i++].cost -= in[v];

else

swap(edge[i], edge[--m]);

}n = tn;

root = id[root];

}return res;

}int main()

int res = zhuliu(0, n, m);

if(res==-1)

printf("case #%d: possums!\n", t);

else

printf("case #%d: %d\n", t, res);

}return

0;}

C 結構體 朱

在沒有結構體之前,資料的組織依靠的是 變數 陣列,但是後來需要的變數多了,所含變數的資料型別也都有不同,而陣列結局的問題中所需要變數的資料型別是一樣的,此時結構體就能夠解決這種資料型別不同的問題。結構體是乙個集合,集合中包含很多元素,這些元素的資料型別可以相同,也可以不同,所以 結構體是一種資料封裝...

明仁宗朱高熾

明仁宗朱高熾 朱高熾是明成祖朱棣的長子,他只活了48歲,不算高壽,而且,他在位僅僅八個月,是有明一代在位時間第二短的皇帝 第一是崇禎的老爹明光宗,只有乙個月 而做為太子卻有22年的歷史。因此,他的很多事情都被歷史湮沒了,以致於很少有人把他和他的父親朱棣 兒子宣宗朱瞻基聯絡起來,也不會有人想到,如果,...

學習筆記 朱劉演算法

樹形圖 最小樹形圖問題 找出總邊權和最小的樹形圖 朱劉演算法解決最小樹形圖問題。對於除根外每個點,找出該點入邊中權值最小的邊,把權加到答案中。判斷選出的邊是否存在環。若無環,退出,找到最小樹形圖,若有環,繼續執行步驟 3。將所有環縮點,構造乙個新圖,對於舊圖的每條邊 對於每個環而言,至少去掉一條邊。...