題目鏈結
貪心從i等於0開始遍歷,不管i等於0時的值是奇數還是偶數,除以2,把能吃的吃完,如果是奇數,會剩下一口,i等於1的值大於1,則這剩下的一口和i等於1裡的一口湊成兩口,則吃的總次數加一,i等於1的值減1,一直遍歷到最後乙個;
注意如果是n個美食,要開乙個n+1的陣列並初始化為0,因為,如果只開size為n的陣列,迴圈裡當i等於n-1時,a[i+1]會是a[n],a[n]未被開闢記憶體,它被分配的值是隨機的,可能導致a[i+1]>0為true,進而總數多加了1
#includeusing namespace std;
int main()
}cout
}
牛客寒假演算法基礎集訓營6
現在有正整數集合 a 和 b,每個集合裡有 n 個數,你要建立他們間的一一對映,將每對配對的數字相加可以得到 n 個和,你要做的就是最大化第 k 大的和。分別將前k大的數,乙個集合第i小的和另乙個集合第i大的,配對,得出k個數最後最小的那個數就是答案。小 q 新學會了一種魔法,可以對乙個 n行m列 ...
2020牛客寒假演算法基礎集訓營6
先將兩個陣列排好序,從兩邊列舉最大的k個數相加,最小的就是最大的第k個數 include include include include include using namespace std const int n 100050 int a n b n n,k,ans 2e8 intmain vo...
2021牛客寒假演算法基礎集訓營6
思路 k1排k2前面滿足 k1.a k2.ax k2.b k1.b k1.ax k1.b k2.b k2.ak1.b k2.b k1.a k2.a k1.b include define ull unsigned long long define ll long long const int inf...