#P5011. 水の造题

    ID: 3935 Type: RemoteJudge 1000ms 32MiB Tried: 0 Accepted: 0 Difficulty: 5 Uploaded By: Tags>素数判断,质数,筛法期望逆元

水の造题

题目背景

第一分钟,CYJian 说:“要有样子。”于是便有了 kk 种动作。

第二分钟,CYJian 说:“要有活力。”于是便有了 kk 种动作组成的总动作数为 NN 的搏击操。

第三分钟,CYJian 说:“要有数学。”于是便有了一套搏击操的威力。

第四分钟,CYJian 说:“数字要小。”于是便有了一个伟大的模数 1949100119491001

第五分钟,CYJian 说:“要有规律。”于是便有了一套搏击操威力的计算方法。

第六分钟,CYJian 说:“要有限制。”于是便有了时空限制以及数据范围。

第七分钟,CYJian 说:“要有答案。”于是便有了这道题让你做掉。

……

* 分钟,巨佬 Imagine 说:“数据太水。”于是蒟蒻出题人疯了。(详见数据范围)

题目描述

现在有一套由 kk 种动作组成的动作总数为 NN 的搏击操。

已知第 1,2,,k1, 2, \cdots, k 个动作的威力为 a[1k]a[1\cdots k]

且如果第一个动作后紧接着第二个动作,则威力会额外加上 a[1]+a[2]a[1]+a[2]

如果第二个动作后紧接着第三个动作,则威力会额外加上 a[2]+a[3]a[2]+a[3]

……

如果第 kk 个动作后紧接着第一个动作,则威力会额外加上 a[k]+a[1]a[k]+a[1]

请求出最后动作的期望威力。

当然,还是要用伟大的模数 1949100119491001 来膜一膜的。

输入格式

第一行,一个正整数 NN

第二行,一个正整数 kk

第三行,kk 个正整数 a[1k]a[1\cdots k]

输出格式

一行,一个正整数表示期望的威力模 1949100119491001 的值。

2
6
1 2 3 4 5 6

16242509

提示

样例解释

xyx-y 表示第一个动作为 xx,第二个动作为 yy

  • 111-11+1=21+1=2
  • 121-21+2+(1+2)=61+2+(1+2)=6
  • 131-31+3=41+3=4
  • 141-41+4=51+4=5
  • 151-51+5=61+5=6
  • 161-61+6=71+6=7
  • 212-12+1=32+1=3
  • 222-22+2=42+2=4
  • 232-32+3+(2+3)=102+3+(2+3)=10
  • 242-42+4=62+4=6
  • 252-52+5=72+5=7
  • 262-62+6=82+6=8
  • 313-13+1=43+1=4
  • 323-23+2=53+2=5
  • 333-33+3=63+3=6
  • 343-43+4+(3+4)=143+4+(3+4)=14
  • 353-53+5=83+5=8
  • 363-63+6=93+6=9
  • 414-14+1=54+1=5
  • 424-24+2=64+2=6
  • 434-34+3=74+3=7
  • 444-44+4=84+4=8
  • 454-54+5+(4+5)=184+5+(4+5)=18
  • 464-64+6=104+6=10
  • 515-15+1=65+1=6
  • 525-25+2=75+2=7
  • 535-35+3=85+3=8
  • 545-45+4=95+4=9
  • 555-55+5=105+5=10
  • 565-65+6+(5+6)=225+6+(5+6)=22
  • 616-16+1+(6+1)=146+1+(6+1)=14
  • 626-26+2=86+2=8
  • 636-36+3=96+3=9
  • 646-46+4=106+4=10
  • 656-56+5=116+5=11
  • 666-66+6=126+6=12

$2+6+4+5+6+7+3+4+10+6+7+8+4+5+6+14+8+9+5+6+7+8+18+10+6+7+8+9+10+22+14+8+9+10+11+12=294$。

294/36=49/6294/36=49/6

1/616242501(mod19491001)1/6 \equiv 16242501 \pmod{19491001}

ans=49×16242501mod19491001=16242509ans = 49 \times 16242501 \bmod 19491001 = 16242509

Subtask 1(20 pts):1N101 \leq N \leq 101k71 \leq k \leq 7

  • Subtask 2(20 pts):1N1061 \leq N \leq 10^61k71 \leq k \leq 7
  • Subtask 3(20 pts):1N10400001 \leq N \leq 10^{40000}1k71 \leq k \leq 7
  • Subtask 4(20 pts):1N101061 \leq N \leq 10^{10^6}1k71 \leq k \leq 7
  • Subtask 5(20 pts):1N101061 \leq N \leq 10^{10^6}1k1061 \leq k \leq 10^6

保证所有的数据:1a[i]1071 \leq a[i] \leq 10^7

注意:本题捆绑测试。

小提示:

可以用下面的 inv(x)\texttt{inv(}x\texttt{)} 求出 xx 的逆元:

long long mod = 19491001;

long long quick_pow(long long x, int k) {
    long long res = 1;
    while(k) {
        if(k & 1) res = res * x % mod;
        x = x * x % mod;
        k >>= 1;
    }
    return res;
}

long long inv(long long x) {
    return quick_pow(x, mod - 2);
}