時間限制: 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。輸出格式 輸出最後剩...