HZOJマトリックスゲーム

洪水の問題、しかし、私は死ぬ2つのツリーラインの影の......

アルゴリズムのための:データの50%:  配信ポイント、時間複雑度によって直接的O(KN)。

アルゴリズムII:8のための:データの0% 我々は、i番目の行により1及びX、j番目の列ではないいずれかを実行し、Yを掛けた場合、別の場所の正の解を用いて計算結果のみ(I、jは)これは一つの要素です。そして、この数はK未満である2のGe。したがって、我々は、これらの要素は、その上に再び算出される時間複雑性O(K分離2)。

アルゴリズムIII:10のための0%データ:設けH [i]はi番目の行の合計乗算の数であり、L [j]は、j番目の列表す総乗算の数をマップ[I] [j]の問題=の意味に従って(I -1)* M + J、明らかに最後$ ANS = \和\ limits_ { i = 1} ^ {N} \和\ limits_ {J = 1} ^ {M} H [i]はL * [J](* (1-I)+ J Mは*)$ それほど複雑さはO(NM)、次いで合計で除去される、 ANS = $ \ SUM \ limits_。1 = {I} $} ^ {N-H [I] * (ΣL[J] * J) + $ \ SUMの\のlimits_ 1} = {J ^ {M}の$ L [J] * (σH[I] *(1-I)* m)のような複雑ですのO(M + N)。

1の#include <iostreamの>
 2の#include <cstdioを>
 3  の#define LL長い長
 4  の#define MAXN 1000010
 5  の#define MOD十億七
 6  使って 名前空間STD。
7  LLさh [MAXN]、L [MAXN]。
8  int型N、M、K。
9  チャー OP。INT X、Y。
10  LLのlj_j [MAXN]、hi_i [MAXN]。
図11は、 メイン()符号付き
 12  {
 13      CIN >> N >> M >> kは、
14      のためにINT J = 1 ; J <= Mであり、j ++)L [J] = 1;
15      のためにint型 i = 1 ; iが<= N; I ++)は時間[I] = 1 16      のためにint型 i = 1 ; iが= Kを<; Iは++ 17      {    
 18          CIN >> OP >> X >> Y。
19          であれば(OP == ' R ')H [X] = hの[X] *のy%のMOD。
20          他の        L [X] = 1 [X] *のy%のMOD。
21      }    
 22      LL sumj = 0、墨= 0 23      のためのint型 J = 1; J <= Mであり、j ++)lj_j [J] Lが= [J] * j個%のMOD、sumj =(sumj + lj_j [J])%MOD。
24      のためにint型 i = 1 ; iが<= N; iが++)hi_i [I] = H [I] *(I- 1)%MOD * m個の%のMOD、墨=(スミ+のhi_i [I])%MOD。
25      LL ANS = 0 26      のためにint型 i = 1 ; iが++; iが<= N)([I] * sumj ANS + H)%= ANS MOD。
27      のためにINT J = 1 ANS =(ANS + L [j] *墨)%; J <= M J ++)MOD。
28      のprintf(" %LLDする\ n " 、ANS)。
29 }
コードの表示

 

おすすめ

転載: www.cnblogs.com/Al-Ca/p/11306655.html