10
20
2013
0

【BZOJ3142】【Hnoi2013】数列【数学题】

YY一下就可以得到最后的答案(因为有些并一起啊什么的全部都喜闻乐见消掉)为N*M^(K-1)-M*(M+1)/2*M^(K-2)*(K-1),开始推了个式子貌似跪了,原因是中途要DIV个二好像有点问题,然后就索性重推了一遍。然后就A了,喜闻乐见。

 

program p3142;
	var
		n,m,k,p,i,j:int64;
	function quick(k1,k2:int64):int64;
		var
			i,j,k,tot:int64;
		begin
			k:=k1; j:=k2; tot:=1;
			while j<>0 do begin
				if j and 1<>0 then 
					tot:=tot*k mod p;
				j:=j shr 1; k:=k*k mod p;
			end;
			exit(tot);
		end;
	begin
		readln(n,k,m,p);
		dec(k);
		i:=quick(m,k-1); 
		writeln(int64(n mod p*m-m*(m+1) div 2 mod p*k+p*1000000000) mod p*i mod p);
	end.
Category: 数学题 | Tags: | Read Count: 2028

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter

Host by is-Programmer.com | Power by Chito 1.3.3 beta | Theme: Aeros 2.0 by TheBuckmaker.com