問題 F 倖存者

2022-09-09 10:30:15 字數 934 閱讀 7488

時間限制: 1 sec 記憶體限制: 128 mb

[狀態] [提交] [命題人:admin]

題目描述

有n個人,現在他們從左往右站成一列。第i個人的位置為i,且第i個人手裡握著一把長度為l[i]的大刀。指揮者統一指令,n個人一齊往左邊砍去。

對於位置為i,j的兩個人(i<j),如果滿足i≥j-l[j],那麼位置為i的人就會被位置為j的人砍死。問:最後有幾個人生存下來?

輸入

第一行輸入乙個整數n(1≤n≤1000000),表示有n個人。

第二行輸入n個整數,第i個整數是li(0≤l[i]≤1000000000),l[i]表示第i個人的大刀長度

輸出

輸出乙個整數,表示最後生存下來的人數。

樣例輸入 copy

40 1 0 10

樣例輸出 copy

1注意是同時砍人,後面的把前面的砍死了,前面的也可以把他前面的砍死

#include 

#pragma gcc optimize(2)

using

namespace std;

intmain()

for(i=n;i>

1;i--

)for

(j=i-

1;j>=

1;j--

)else

break;}

for(i=

1;i<=n;i++)if

(b[i]!=0

) sum++

;printf

("%d\n"

,sum)

;return0;

}

倖存者偏差

二戰期間,盟軍需要對戰鬥機進行裝甲加厚,以提高生還率,但由於軍費有限,只能進行區域性公升級。那麼問題來了,究竟哪個部位最關鍵,最值得把裝甲加厚來抵禦敵方炮火呢?人們眾口不一,最後一致決定採用統計調查的方式來解決,即 仔細檢查每一駕戰鬥機返回時受到的損傷程度,計算出飛機整體的受彈狀況,然後根據大資料分...

倖存者遊戲

有n個同學圍成一圈,其id依次為1 n n號挨著1號 現在從1號開始報數,第一回合報到m的人就出局,第二回合從出局的下乙個人開始報數,報到m2的同學出局。以此類推,直到最後乙個回合報到mn 1的人出局,剩下最後乙個同學。輸出這個同學的編號。輸入格式 共一行,包含兩個整數n和m。輸出格式 輸出最後剩下...

倖存者遊戲

有n個同學圍成一圈,其id依次為1 n nn號挨著1號 現在從1號開始報數,第一回合報到m的人就出局,第二回合從出局的下乙個人開始報數,報到m2的同學出局。以此類推,直到最後乙個回合報到mn 1的人出局,剩下最後乙個同學。輸出這個同學的編號。輸入格式 共一行,包含兩個整數n和m。輸出格式 輸出最後剩...