需要招募女兵n人,男兵m人。每徵募乙個人需要花費10000美元。但是如果已經招募的人中有一些關係親密的人,那麼可以少花一些錢。給出若干的男女之間的1~9999之間的親密度關係,徵募某個人的費用是10000-(已經徵募的人中和自己的親密度的最大值)。要求通過適當的徵募順序使得徵募所有人所需費用最小。
第一行輸入 n m r(關係數)
接下來r行
每行輸入f t c 代表第f號男與第t號女的親密度為c
輸出最小費用
5 5 8
4 3 6831
1 3 4583
0 0 6592
0 1 3063
3 3 4975
1 3 2049
4 2 2104
2 2 781
使用kruskal演算法演算法即可
#include
#include
#include
using
namespace
std;
class edge
edge()
};using
namespace
std;
int par[1001];
int rank[1001];
void init(int n)
}int find(int x) else
}void unite(int x, int y) else
if (rank[x] < rank[y]) else
}}bool same(int x, int y)
bool comp(const edge& e1, const edge& e2)
vector
es;int v, e;
int kruskal()
}return res;
}int main()
cout
<< 10000 * v + kruskal() << endl;
return
0; }
每日一題 leetcode 55 跳躍遊戲
跳躍遊戲 難度中等647 給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例 1 輸入 2,3,1,1,4 輸出 true 解釋 我們可以先跳 1 步,從位置 0 到達 位置 1,然後再從位置 1 跳 3 步到達最...
每日一題 leetcode 55 跳躍遊戲
跳躍遊戲 難度中等647 給定乙個非負整數陣列,你最初位於陣列的第乙個位置。陣列中的每個元素代表你在該位置可以跳躍的最大長度。判斷你是否能夠到達最後乙個位置。示例 1 輸入 2,3,1,1,4 輸出 true 解釋 我們可以先跳 1 步,從位置 0 到達 位置 1,然後再從位置 1 跳 3 步到達最...
每日一題 1
題目詳情 peter喜歡玩數字遊戲,但數獨這樣的遊戲對他來說太簡單了,於是他準備玩乙個難的遊戲。遊戲規則是在乙個n n的 裡填數,規則 對於每個輸入的n,從左上角開始,總是以對角線為起點,先橫著填,再豎著填。這裡給了一些樣例,請在樣例中找到規律並把這個n n的 列印出來吧。輸入描述 多組測試資料 資...