CCPC-Wannafly&彗星OJ喜び夏のシーズン(2019)H

フェイス質問

    神の玉ねぎアムウェイアムウェイこの問題によって。

    調理する学校の数と等しいがあるので、もし私たちは、それは確かに一つのプロセス(その場所で他の人と合併する準備ができて)学生番号+1の残りの位置に何度も何度も、同じ番号を保持するために学習され、貪欲たいと思います。

    [i]は1E18には大きいかもしれないが、力はあなたのコードは十分に強い場合、あなたはまだシミュレートされた5分のO(N)を書くことができますが(鶏肉料理と、このコードは、野菜の10分を上書きする機能です)

 

#include <ビット/ STDC ++ H> 
の#defineは長い長いllの
名前空間stdを使用します。
CONST int型N = 100005、HA = 1E9 + 7。

NUM、N INT、ANS = 1。
LL [N]、今。

INTメイン(){ 
	scanf関数( "%d個"、&n)は、[N] = 1E18 + 1LL。
	以下のために(INT i = 0; iがn <; iは++)のscanf( "%のLLD"、A + I)。
	ソート(+ n)は、今= [0]、NUM = 1。
	
	以下のために(INT i = 1; iが= N <; iは++){ 
		IF([I] = [I-1]!)のために(;今<[I]&今#++、num--)ANS = ANS *(LL)NUM%ヘクタール。
		今[i]は、numは++ =。
	} 
	
	COUT << ANS << ENDL。
	0を返します。
}

  

おすすめ

転載: www.cnblogs.com/JYYHH/p/11260655.html