[codevs2089]数列 省选也有水23333333333333333333333333333333333333333333333笑抽了又是数论再让我笑一会233333333333333333333333333333333333333

数组都懒得开了,贴代码吧忒简单

var
    n,k,m,p,x:int64;

function f(x,y:int64):int64;
begin
    if y=0 then exit(1);
    f:=f(x,y>>1);
    f:=f*f mod p;
    if y and 1=1 then f:=f*x mod p;
end;

begin
    read(n,k,m,p);
    x:=((m mod p)*(n mod p)-(m*(m+1)>>1 mod p)*(k-1))mod p;
    if x<0 then x:=x+trunc(abs(x)/p)*p+p;
    x:=x mod p;
    writeln(f(m,k-2)*x mod p);
end.

不打广告了,再让我笑一会233333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333……(背过气了)

posted @ 2015-09-28 09:55  ROLL-THE-FIRST  阅读(180)  评论(0编辑  收藏  举报