HDU 6205 2017瀋陽網路賽 思維題

2022-03-24 00:09:00 字數 616 閱讀 7045

題意:給你n堆牌,原本每一堆的所有牌(a[i]張)預設向下,每次從第一堆開始,將固定個數的牌(b[i]張)翻上,然後下一堆繼續,直到沒有足夠的牌翻上,然後你可以獲得當前已經操作過的堆的所有牌。最初你可以調整堆的順序,把第一堆放到最後一堆(逆時針旋轉),你可以重複這個操作,問你要重複多少次這個操作,才能獲得最多的牌。

解法:先把這個序列複製一遍放在原來的序列後面。當i=n的時候結束就可以了,每次遍歷長度為n的序列,然後開始找,當有乙個sum已經小於0,就說明當前已經結束了,所以當前的最大牌數就是現在的總牌數,然後和之前的答案比較,因為sum小於0了,所以當前的a[i]-b[i]是一定小於0的要不然在之前sum就小於0,所以從這個節點開始往後面重新計算就可以了,因為在這種情況下這個結果是最優的。

#include using namespace std;

const int maxn = 2000010;

int n, a[maxn], b[maxn];

int main()

sum=0;

num=0;

break;}}

if(cnt==ans+n)

}printf("%d\n", id);

}return 0;

}

HDU 6195 2017瀋陽網路賽 公式

題意 有m個格仔,有k個物品。我們希望在格仔與物品之間連數量盡可能少的邊,使得 不論是選出m個格仔中的哪k個,都可以與k個物品恰好一一匹配。解法 從樣例猜出答案應該是k m k 1 從這個樣例可以找到合法的解決方案。每個物品,都要向 m k 1 個格仔連去一條邊,我們會丟棄m k個格仔,但總會剩下乙...

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 ...