トピックポータル
PS:要求項目番号nに典型的には、このような列、nは、特に大きいです。高速電力行列、または変換再帰のどちらか。しかし、この問題は、特に100000データセットなので、高速電力行列がタイムアウトしているかもしれませんが、私は起動していない場合でも。再帰的な変換は強力な数学的背景を必要とし、私は変換できません。ε=( 'ο `*)) )残念ながら、唯一の法律を見つけるためにテーブルをヒットします。
- テーブルコードを再生します
#include " ビット/ STDC ++ H。" 使用 名前空間STDを、 CONST INT MAXN = 110 。 INT [MAXN]。 INT )(メイン{ [ 1 ] = 1 。 int型の合計= 0 ; 以下のために(int型 I = 2 ; iは= < 100 ; iは++ ){ 合計 + = [I - 1 ] *(I - 1 )。 A [i]は =和%I。 } のために(int型のI =1 ; 私は= < 100 ; I ++ ) のprintf(" %D%D \ n " 、I、[I])。 リターン 0 ; }
ゾル:で見出さ演奏テーブル上記コードの後に[I] = I - 1、又は[I] * 2 = iがしばしばであり、[I] =私のリスト- 1.発見満足I%6 = 4下部は、[I] * 2 =私はここで、i%6 = 0または%6 = 2 I満たされています。実際には、この時間は、定期的に、次は全てのi%6 = 1、I%置くべき6のセットのカラム数を推測することができました= 6%を、5例は、法律のどの残りのリストを見つけることができましたそして、私は見ていたが、これらの3つのケースが一緒に入れ。私%2 == 1。原因の法律を遵守することは困難と多くの時間を費やしました。
- 法則
#include " ビット/ STDC ++ H。" 使用 名前空間STDを、 typedefの長い 長いLL。 INT メイン(){ LLのT、N。 scanf関数(" %のLLD "、&T)。 一方、(t-- ){ scanf関数(" %のLLD "、&N) スイッチ(N%6 ){ ケース 0:のprintf(" %LLDする\ n "、N / 2)。破ります; ケース 1:のprintf(" %LLDする\ n "、N / 6 * 4 + 1)。破ります; ケース 2:のprintf(" %LLDする\ n "、N / 2)。破ります; ケース 3:のprintf(" %LLDする\ n "、N / 6)。破ります; ケース 4:のprintf(" %LLDする\ n "、N - 1)。破ります; ケース 5:のprintf(" %LLDする\ n "、N / 6)。破ります; } } 戻り 0 。 }
私はブログを書いていない時は、良いブラシの疑いがない、ありました。Baiduはスターがそれを維持乗り始めました。