嵊州D4T2 硬幣 有人來教教我嗎!

2022-05-31 15:45:06 字數 1367 閱讀 9026

卡拉贊的展覽館被入侵了。 展覽館是一條長長的通道,依次擺放著 n 個展櫃(從西到東編號依次 為 1—n)。

入侵者瑪克扎爾在第 n 個展櫃東邊召喚了乙個傳送門,一共施放了 n 次法術,每一次會選取乙個展櫃,並在那個展櫃裡召喚乙隻小鬼, 小鬼被生成前該展櫃裡的展品會被自動轉移(除此以外不能取出展品)。

作為展覽館的守護者,館長需要選擇乙個時機進行反擊,消滅所有小鬼並摧毀傳送門。

展覽館的東端設定了一台巨大的 morisa 炮,它可以摧毀它正前方一定 範圍內的一切(為了安全,開炮時館長必須在展覽館最西邊)。館長不想誤傷展品,所以他需要移動展櫃。

館長可以站在兩個展櫃中間,交換這兩 個展櫃。

展覽館被設定了魔法結界,只可以單向通行,所幸在炮台旁有一 個傳送門,可以通向展覽館的最西端,但是館長每次通過傳送門都會消耗 一枚麥迪文留下的幸運幣,發射魔炮也需要一枚。

現在,館長想知道他每次召喚後進行反擊最少需要多少枚硬幣解決危機。

來吧,展覽館只對訪客開放。

第一行乙個數n。

第二行n個數,a[i]表示第i次小鬼召喚的位置。

一行 n+1 個數,b[i]表示第 i 次召喚後反擊所需要的最小硬幣數(第 一次是傳送門的召喚)。

對於40%資料n ≤ 20

對於60%資料n ≤ 100

對於100%資料 1 ≤ n ≤ 300000

1 #include2

using

namespace

std;

3intn;4

bool g[300001];5

int move(int

num)

11bool flag1=1,flag2=0;12

int coin=0;13

do//

傳送到左邊

1420

2122

23for(int i=1;i<=n;i++)

2430}31

32}33while(flag1&&++coin);

34return coin+2;35

}3637int

main()

47return0;

48}49/*

50發射魔炮需1個coin

51這與鬼的數量無關

5253

假設鬼從左往右生成

54原本館長在最左邊,故至少傳送到左邊去(為了安全)發射要一枚硬幣

5556

5758

*/

在下小見,請過目~

嵊州D6T2 城市 city

眾所周知,why 是czyz 王國的國王。czyz 王國一共有n 個城市,每個城市都有一條道路連向乙個城市 可能連向這個城市自己 同時,對於每乙個城市,也只有一條道路連向它。如果乙個人可以通過道路可以從城市x 走向城市y,那麼我們稱 x,y 這 個數對是滿足條件的。x 可以等於y 現在why 可以選...

2017 10 4 國慶清北 D4T2 正方形

在乙個10000 10000的二維平面上,有n顆糖果。lyk喜歡吃糖果!並且它給自己立了規定,一定要吃其中的至少c顆糖果!事與願違,lyk只被允許圈出乙個正方形,它只能吃在正方形裡面的糖果。並且它需要支付正方形邊長的價錢。lyk為了滿足自己的求食慾,它不得不花錢來圈乙個正方形,但它想花的錢盡可能少,...

嵊州D5T2 摺紙 folding

問題描述 在非常緊張的 noip 考試中,有人喜歡啃指甲,有人喜歡轉鉛筆,有人喜歡撕 紙條,而小 x 喜歡迷摺紙。現有乙個 w h 的矩形紙張,監考老師想知道,小 x 至少要折多少次才能使 矩形紙張變成 w h 的矩形紙張。注意,每次的摺痕都要平行於紙張的某一條邊。輸入格式 第一行包括兩個整數 w,...