floyd閉包或者加一點並查集uva247

2021-08-06 06:17:56 字數 1965 閱讀 5805

這題我學習了map的用法以及string 的快速輸入與輸出,這題格式要求 嚴格輸出要有逗號加乙個空格,還有就是每次都要換行什麼煩死啦!!!!(反正仔細看輸出格式)

其他都很水。。。。。

帶並查集的10ms做法:

#include#include#include#include#include#includeusing namespace std;

string name[60];

queueshow[60];

mapfindd;

void get(string &a)

k++; }}

void out(string a)

int amount;

int floyd[60][60];

int ufa[60];

void init(int n)

int find(int num)

void unionn(int a, int b)

int main()

if (findd[b] == 0)

floyd[findd[a]][findd[b]] = 1;

} for (int i = 1; i <= n; i++)

for (int j = 1; j <= n; j++)

for (int k = 1; k <= n; k++)

floyd[j][k] = floyd[j][k] || (floyd[j][i] && floyd[i][k]);

for (int i = 1; i <= n; i++)

for (int j = i + 1; j <= n; j++)

if (floyd[i][j] == 1 && floyd[j][i] == 1)

unionn(i, j);

for (int i = 1; i <= n; i++)

if (times>1)

printf("\n");

printf("calling circles for data set %d:\n", times);

times++;

for (int i = 1; i <= n; i++)

}findd.clear(); }

}

簡單的0ms做法

#include#include#include#include#include#includeusing namespace std;

string name[60];

mapfindd;

int visit[60];

void get(string &a)

k++; }}

void out(string a)

int amount;

int floyd[60][60];

int ufa[60];

int main()

getchar();

for (int i = 0; i < m; i++)

if (findd[b] == 0)

floyd[findd[a]][findd[b]] = 1;

} for (int i = 1; i <= n; i++)

for (int j = 1; j <= n; j++)

for (int k = 1; k <= n; k++)

floyd[j][k] = floyd[j][k] || (floyd[j][i] && floyd[i][k]);

//if (times>1)

//printf("\n");

printf("calling circles for data set %d:\n", times);

times++;

for (int i = 1; i <= n; i++)

}printf("\n");

} findd.clear(); }

}

並查集 一點小的感悟

最近在做acm題,遇到了乙個叫做並查集的東西,於是從網上找了一些資料,順便自己總結了一些,希望對大家和自己都有用 一 什麼叫做並查集 英文 disjoint set,即 不相交集合 將編號分別為1 n的n個物件劃分為不相交集合,在每個集合中,選擇其中某個元素代表所在集合。常見兩種操作 1 n合併兩個...

電影節 並查集 一點點思考

某屆電影節評選電影,共有兩部電影進入最後評選環節,有n名觀眾,每個人有一次投票的機會,每個人都按照規則投給其中一部電影。為了了解情況,記者隨機詢問了一些人,一共詢問了m次,特別神奇的是,記者每次都詢問兩個人,而且這兩個人都把票投給了同一部電影,觀眾編號為1 n。input 多組輸入,每組第一行是兩個...

每天學一點Swift 閉包 三

八 捕獲上下文中的變數和常量 1.閉包可以用訪問或修改閉包所在上下文中的變數或常量 對於常量只是訪問 這個過程被稱為捕獲。2.即使定義這些變數或常量的作用域已經不存在了,閉包也依然可以訪問或修改他們。3.swift 中最簡單的閉包形式就是巢狀函式 巢狀函式可以捕獲它所在的封閉韓式的變數 常量或引數。...