HDU 6195 2017瀋陽網路賽 公式

2022-03-24 00:22:07 字數 487 閱讀 1793

題意:有m個格仔,有k個物品。我們希望在格仔與物品之間連數量盡可能少的邊,使得——不論是選出m個格仔中的哪k個,都可以與k個物品恰好一一匹配。

解法:從樣例猜出答案應該是k*(m-k+1)。從這個樣例可以找到合法的解決方案。每個物品,都要向(m - k + 1)個格仔連去一條邊,我們會丟棄m - k個格仔,但總會剩下乙個格仔是與這個物品連邊的。

我們強制這樣連邊1 -> [1, m - k + 1]  

2 -> [2, 1 + m - k + 1]  

3 -> [3, 2 + m - k + 1] 

k -> [k, m]  這樣不論選哪些格仔,第乙個物品總是能匹配第乙個格仔,第二個物品總是能匹配第二個格仔…… 所以總能合法匹配!

#include using namespace std;

typedef long long ll;

int main()

return 0;

}

hdu5455 2015瀋陽網路賽F題

題意 給出乙個串,問用題中定義的那些串來組成這個串最少要用多少個。思路 沒啥說的,注意一下輸入的串中可能出現除了c和f的字母。include include include include include include include include include include include...

hdu5452 2015瀋陽網路賽C題

題意 給出乙個無向圖和乙個此圖的生成樹,讓我們求乙個本圖的最小割邊集,割邊集只包括生成樹中的一條邊,讓割邊集的邊數最少,輸出數目。思路 並查集 暴力。include include include include include using namespace std const int maxn ...

hdu5461 2015瀋陽網路賽L題

題意 給出乙個數列,我們要在這裡找出兩個數,使得題意中那個表示式最大。思路 排兩個序就好了啊,看 一下就懂了。include include using namespace std const long long maxn 5 1000000 10 struct node aa maxn bb ma...