UVALive 3177 長城守衛

2021-07-28 02:52:38 字數 631 閱讀 1663

/**

題意: 有n(1<=n<=100 000)個人圍成乙個圈,  其中第i個人想要r[i](1<= r[i] <= 100 000)個禮物;

求要使任意相鄰的兩個人沒有相同禮物的最小總禮物數

sample input :

52 2 2 2 2

sample outpu:

5分析 :

n為偶數時很簡單 : ans = max(r[i] + r[i+1]);

n為奇數時比較棘手:

既然求最值,試試二分

那對於給定答案怎樣確定是否符合條件呢?

對於給定的禮物數q,設第乙個人的禮物為1~r1

最優分配方案:編號為奇數的人盡量往後取,編號為偶數的人盡量往前取

將其按a[0]分為兩部分:左部分a[0]個,右部分q-a[0]個;

然後i為奇數的人盡量取左邊,偶數i盡量取右邊.

若最後乙個人乙個左部分的都沒有取到,則符合條件,

否則不符合條件

要怎麼記錄取值呢?

兩個陣列,left[i]記錄取左邊的個數,right[i]記錄取右邊的個數*/

#include #define scf(n) scanf("%d",&n)

#define cao(n) cout<

3 17學習計畫

1 做一套計算機二級的題目 2 背英語單詞,記筆記 4 做模電作業,課堂檢測和課後作業 1 和往常一樣,空閒的時候,在手機上做了選擇題 有電腦的時候,直接做大題。做了很多題目之後,現在對word算是比較熟悉了,基本上首先是要看是另存為,還是以什麼名字儲存。其次基本上都要調整頁面大小,頁邊距這些。當然...

3 17考試小記

考場上來讀完第一題第一反應就是網路流,看上去應該是乙個最小割或者費用流。第二題看上去好像是一道傳統計數題,可能要n 2遞推 組合數或者容斥可能會很麻煩。第三題題面很長,讀完發現就是一道lct維護子樹資訊,而且細節很多,很毒瘤。但是部分分給的很多,但是種類有點多,貌似每乙個部分分都不那麼好打,而且最後...

藍橋杯練習 3 17

旅行家的預算 貪心 問題描述 乙個旅行家想駕駛汽車以最少的費用從乙個城市到另乙個城市 假設出發時油箱是空的 給定兩個城市之間的距離d1 汽車油箱的容量c 以公升為單位 每公升汽油能行駛的距離d2 出發點每公升汽油 p和沿途油站數n n可以為零 油站i離出發點的距離di 每公升汽油 pi i 1,2,...