T1:マトリックスのゲーム
無知に見えるだけのタイトルを見て、私は少しは見当がつかない感じる......
そして、対象を見て始めた、何かを隠して説明した問題を識別するためと思われますか???
何かを示唆するかのように、アイドル、退屈狂った感じのトピックは、非常に単純なことを説明します!
だから、入れタイトル方程式を書き留め - $(I-1)* M + J $
示されるこの式に次に答え - $ \ sum_ {i = 1} ^ nR_i \ sum_ {J = 1} ^ mS_j [(I-1)* M + 1 J] $
その後、$ I $で項目は$ O(n)は$行なわの外にリッピングすることができます
そう、コード
1の#include <cstdioを> 2の#include <iostreamの> 3の#include <CStringの> 4の#include <cmath> 5の#include <アルゴリズム> 6の#include <ベクトル> 7 の#defineは長い長いっ 8 使用 名前空間STDを、 9 のconst int型 MAXN = 1000005、MAXK = 100005、D = 1E9 + 7 。 10 int型N、M、K。 11人の LL和、sumr、S [MAXN]、R [MAXN]、ANS、TMP、合計。 12 チャー OPT [ 5 ]。 13 INT メイン(){ 14 のscanf(" %D%D%D "、&N、&M、およびK); 15 のために(int型 I = 1 ; I <= M; iが++)S [I] = 1 。 16 のために(int型 i = 1 ; iが<= N; iが++)R [I] = 1 。 17 のために(int型 i = 1 ; iが= Kを<; Iは++ ){ 18の LLのX、Yと、 19 のscanf(" %sの%LLD%LLD "、オプト&X&Y)。 20 であれば(OPT [ 0 ] == ' R ')R [X] = R [X] *のy%のD。 21 他 S [X] = sで[X] *のy%のD。 22 } 23 のための(int型 iは= 1和=(和+ S [i])と%の; I <= M iは++)D。 24 のために(int型 I = 1を TMP =(TMP + S [i]は* I)%の; I <= M Iは++)D。 25 のためには、(int型 I = 1 ANS =(ANS +(TMP +(LL)(I-iは++; iがn = <)1)* M%Dが*合計)%のDの* rを[I]%のD)%のD。 26 のprintf(" %LLDする\ n "、(ANS%D + D)%のD)。 27 リターン 0 ; 28 }
T2:ホップスコッチ
k個の行列乗算最初の思想の範囲を参照するが、N見て、Mまたは忘れ
ほとんどの変更は唯一、前の操作を3ポイント、そうでも暴力的な側面の実行に影響を与えることがわかりました、
また、グラフはn個の点を組み込み、Nエッジがグラフに向けられている場合、それは内側ツリーのリングでなければならないことがわかっ
kの多くは、リングの周りに常にある時間を考えるのは簡単ですので、あなたは、リング型の長さにほとんどの複雑さをそれを取ることができます
T3:美しいシーケンス