1901 賞賜 OR 災難

2021-08-21 10:53:09 字數 1188 閱讀 2484

time limit: 1 sec

memory limit: 128 mb

submitted: 418

solved: 110

大g南征北戰終於打下了大片土地成立了g國,大g在開國大典上傳召幫助自己南征北戰的三大開國元勳小a,小b,小c進殿,並要賞賜三人大量寶物以顯示天恩浩蕩。大g在征服其他國家的時候搶奪了n箱寶物,他把這些箱子依次排列在三人面前,每個箱子裡的寶物都有乙個價值wi,大g令他們一人選取乙個箱子作為獎勵。可是令大g萬萬沒有想到的是,三人在私底下是存在競爭關係的,由於小b手上兵權強於小c,小c手上兵權強於小a。所以弱者總是擔心自己領取的賞賜高於或等於強者會招來殺身之禍。所以他們三人總是會讓小b先選取獎勵之後,小c會在小b選擇的右側區域選擇價值比小b小的獎勵,而小a則會在小b選擇的左側區域選擇價值比小b和小c都小的獎勵。當然小b是個聰明人,他也會考慮到兩人的想法選擇對大家都有幫助的方案選取。請問是否存在這樣一種選擇方案讓大家都不用擔心會招致殺身之禍。如果存在輸出「yes」,否則輸出「no」

多組資料讀入

每組資料第一行輸入乙個正整數n表示n箱寶物(n<=100000)接下來一行輸入n個正整數w1,w2,w3,...,wn表示n箱寶物的價值。(wi

<=10000000)題目保證所有資料n的總和不超過500000

如果存要求的選擇方案則輸出「yes」,否則輸出「no」。

6

1 2 3 6 5 4

61 2 3 4 5 6

yes

no

思路:預處理求得b所選寶物左邊的最小值,棧求的b所選寶物右邊的最大值。b所選的寶物從右往左掃瞄,一旦有符合條件的就跳出。

#include#includeusing namespace std;

int a[100005],m[100005];

int main()

else

}s.push(a[n-1]);//將最後乙個元素入棧,棧內元素是將軍c可選的獎勵

bool f=false;

for (int i = n-2;i >0;i--)//從後往前進行掃瞄,尋找滿足條件的

s.push(a[i]);//確保棧非空,為下次迴圈做準備

if(a < c)//a}

if(!f)cout << "no\n";

} return 0;

}

賞賜 OR 災難

大g南征北戰終於打下了大片土地成立了g國,大g在開國大典上傳召幫助自己南征北戰的三大開國元勳小a,小b,小c進殿,並要賞賜三人大量寶物以顯示天恩浩蕩。大g在征服其他國家的時候搶奪了n箱寶物,他把這些箱子依次排列在三人面前,每個箱子裡的寶物都有乙個價值wi,大g令他們一人選取乙個箱子作為獎勵。可是令大...

vue 使用技巧總結 19 01

上面的函式中使用箭頭,會導致 this 捕獲不到 vue 例項。各位道友切記切記.目前通常使用的方式是 然後在查資料的時候翻到了乙個統一管理的方式 asynccomponent.js 檔案 export const component01 import views export const comp...

災難恢復報告

我的公司對日軟體外包企業,主要從事 it專案開發及維護工作。公司除了總經理和副總經理外主要有人事財務部,開發部,主機部三個部門,對於經理來說,重要的資料是關於客戶的資訊,合同等內容,基本儲存於經理自己的個人電腦內。對於人事財務部來說,儲存的資料有員工資訊,財務報表等資訊,這些資訊基本分布在財務部門各...