QDC DAY1

  彼は少しクラッシュ、突然死亡した、と比較的自閉症の心..

LINK:幸せな  私は確かに書き出すことができますが、私は打ち上げを折りたたむので気にしなかった、一度1。

求$ T_N = \ displaystyle \ sum_ {i = 0} ^ {n}はF_n $其中$のFn = \ displaystyle \ sum_ {i = 0} ^ {N}のf_i \回F_ {NI} $

$ F $フィボナッチ列である$ F_0 = 1、F_1 = 1 $ ... $ F_n要件$ N <= 1E18

 むしろ、明白なアイデアは、TN簡素化を記述し続けることで、最終的に接頭辞の形を見つけ、その後、Oに見つかった(n)が計算されます。

ごみ結果のわずか70分のようになります。

// の#include <ビット/ STDC ++。H> 
の#include <iomanip> 
の#include <iostreamの> 
する#include <cstdioを> 
する#include <CStringの> 
する#include < ストリング > 
の#include <キュー> 
の#include <両端キュー> 
する#include <cmath > 
の#include <CTIME> 
の#include <cstdlib> 
の#include <スタック> 
の#include <アルゴリズム> 
の#include <ベクトル> 
の#include <CCTYPE> 
の#include <ユーティリティ> 
の#include < 設定 >
書式#include <ビットセット> 
の#include<地図>
 の#define INF十億十
 の#defineっ長い長
 の#define MP(x、y)はmake_pair(X、Y)
 の#define未符号なし
 の#defineダブルDB
 の#define EPS 1E-5
 の#define MOD 998244353
 使用して 名前空間STDを、
チャー BUF [ 1 << 15 ]、* FS、* FT。
インラインチャーGETC()
{ 
    リターン(FS ==フィート&&(FT =(FS = BUF)+関数fread(BUF、11 << 15、STDIN)、FS ==フィート))?0:* FS ++ ; 
} 
インラインLLリード()
{ 
    LL X = 0、F = 1チャー CH = GETC()。
    一方、(CH < ' 0 ' || CH> ' 9 '){ 場合(CH == ' - ')、F = - 1 ; CH = GETC();}
     一方(CH> = ' 0 ' && CH <= ' 9 '){X = X * 10 + CH- ' 0 ' ; CH = GETC();}
     戻りのx *のF。
} 
CONST LL MAXN =1000010 ; 
LLのn; 
ANS LL、合計。
LL F [MAXN]。
署名されたメイン()
{ 
    // freopenは( "1.in"、 "R"、STDIN)。
    N = 読み取ります(); 
    F [ 0 ] = 1 ; fは、[ 1 ] = 1 (LL I = 2 [I] =([I-F、F; iは<= N I ++)1 ] + F [I- 2 ])%MOD。
    もし(N <= 20000 
    { 
        ため(LL i = 0 ; iが<= N; ++ I)
        { 
            (LL jを= 0 ; J <= I; ++ j)は
                ANS=(ANS + F [j] * [IJ F)%MOD。
        } 
        のprintf(" %LLDする\ n " 、ANS)。
        リターン 0 ; 
    } 
    場合(N <= 1000000 )は、
    { 
        ためint型 i = 0 ; iが<= N; ++ I)の合計=(和+ F [i])と%MOD。
        以下のためにint型 i = 0 ; iは= N <; ++ I)
        { 
            合計 =((SUM-F [N-I + 1 ])+ MOD)%MOD。
            ANS =(ANS + Fの[I] *和%MOD)%MOD。
        } 
        のprintf("LLD%\ N- "ANS);
         戻り0 ; 
    } //は、包含及び除外100点を考慮して、良好な自己閉鎖にない 
    のprintf(" %のLLDの\のN- " ;、ANS)
     戻り0 ; 
} 
     
コードの表示

三重の合計にこの実際に反転した三角形が、その後の治療を放棄したので、私は2時間と考えられていた修正されていない見つけ最適化する方法を考えるように続けます。ない右思考の方向すぎ。

この式では$ F_n $ルック。単純に減少$ F_n = \ sum_ {i = 0} ^ {N-2}のf_i \回F_ {NI} + F_ {N-1} F_1 + f_nf_0 $

おすすめ

転載: www.cnblogs.com/chdy/p/11619236.html