2019ACM-ICPC瀋陽ネットワークゲーム-K-Guanguanのハッピー水(+思考暴力)

(あなたが質問の顔、プラス後半平面のタイトルを見ることができません)

 

アイデア:

須磨=(A1 + A2 + ... + S)

SUMF =(F1 + F2 + ... + F3)

①n<= K、ANS = A1 + A2 + ... +。

②n<= 2K、ANS =スマ+ F1 + F2 + ... + F(NK)。

③n> 2K、ANS =スマ+((NK)/ K)* SUMF +(F1 + F2 + ... + F((NK)%のK))。

なお、ライン剰余

 

ACコード:

1つの#include <ビット/ STDC ++ H>
 2  使用して 名前空間STDを、
3 typedefの長い 長いLL。
4  のconst  int型 MAXN = 1E6 + 7 5 LL MOD = 1E9 + 7 6  ; [MAXN]、[MAXN] F LL
7  INT ()メイン
 8  {
 9      int型のT。
10      のscanf(" %dの"、&T)。
11      一方(t-- ){
 12          のint 、K。
13          のLL N、スマ= 0、SUMF = 0 、K2。
14          のscanf(" %dの"、&K)。
15          K2 = 11(K);
16          のscanf(" %のLLD "、&N)
17          のためにint型 i = 1 ; iが= Kを<; ++ i)が
 18              のscanf(" %のLLD "、&​​[i])と、スマ=(スマ+ [I])%のMOD。
19          のためにint型 i = 1 ; iが= Kを<++ i)が
 20              のscanf(" %のLLD "、&​​F [i])と、SUMF =(SUMF + F [i])と%MOD。
21          LL ANS = 0 22          であれば(K2> = {N)
 23              のためのint型 I = 1 ; I <= INT(N); ++ i)は
 24                  のANS =(ANS + [I])%MOD。
25              のprintf(" %LLDする\ n "、ANS%のMOD)。
26          }
 27          {
 28の              ANS =スマ%MOD。
29              LL NU =((N-K2)/ K2)。
30              int型 LEN = N-NU * k2-K2;
31              今や%= V。
32の              ANS =(今SUMF * + ANS)%のV。
33              のためにint型 i = 1 ; iがLEN = <; ++ i)が
 34                  のANS =(ANS + F [i])と%のV。
35              のprintf(" %LLDする\ n "、ANS%MOD)。
36          }
 37      }
 38      リターン 0 39  }
 40  / * 
41  2
 42  2 100000000000000000
 43  6 5 5 5
 44  * /

 

おすすめ

転載: www.cnblogs.com/CharlieWade/p/11519645.html