zoukankan      html  css  js  c++  java
  • P5591 小猪佩奇学数学

    P5591 小猪佩奇学数学

    [sum_{i=0}^{n}inom{n}{i}p^ilfloordfrac{i}{k} floor\ =sum_{i=0}^{n}inom{n}{i}p^idfrac{i-i\%k}{k}\ =dfrac{1}{k}sum_{i=0}^{n}inom{n}{i}p^i(i-i\%k)\ =dfrac{1}{k}sum_{i=0}^{n}inom{n}{i}p^ii-dfrac{1}{k}sum_{j=0}^{k-1}jsum_{i=0}^{n}[imod k=j]inom{n}{i}p^i ]

    (dfrac{1}{k}) 暂且略去。

    先看前面,看着很小清新。

    [sum_{i=0}^{n}inom{n}{i}p^ii\ =nsum_{i=0}^{n}dfrac{i}{n}inom{n}{i}p^i\ =nsum_{i=0}^{n}inom{n-1}{i-1}p^i\ =npsum_{i=0}^{n-1}inom{n-1}{i}p^i\ =np(p+1)^{n-1} ]

    再看后面

    [sum_{j=0}^{k-1}jsum_{i=0}^{n}[imod k=j]inom{n}{i}p^i\ =dfrac{1}{k}sum_{j=0}^{k-1}jsum_{i=0}^{n}sum_{t=0}^{k-1}omega_{k}^{t(i-j)}inom{n}{i}p^i\ =dfrac{1}{k}sum_{t=0}^{k-1}sum_{j=0}^{k-1}jomega_{k}^{-tj}sum_{i=0}^{n}inom{n}{i}p^iomega_{k}^{ti}\ =dfrac{1}{k}sum_{t=0}^{k-1}sum_{j=0}^{k-1}jomega_{k}^{-tj}(pomega_{k}^{t}+1)^n\ =dfrac{1}{k}sum_{t=0}^{k-1}(pomega_{k}^{t}+1)^nsum_{j=0}^{k-1}jomega_{k}^{-tj}\ ]

    后面那个 (omega) 是个等差乘等比的形式,习惯性单独拉出来推。

    [S=sum_{j=0}^{k-1}j(omega_{k}^{-t})^j\ omega_{k}^{-t}S=sum_{j=1}^{k}(j-1)(omega_{k}^{-t})^j\ (1-omega_{k}^{-t})S=sum_{j=0}^{k-1}(omega_{k}^{-t})^j-(k-1)omega_{k}^{-tk}-1\ =[k|t]k-(k-1)-1=-k\ S=dfrac{k}{omega_{k}^{-t}-1} ]

    哼哼,啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊,一个细节调死人了。这个并不完全是等比数列,开头有 (0) ,我大E了,没有闪,被偷袭了。这个就是第三步 (-1) 的原因。

    还要特判 (t=0)

    #define mod 998244353
    inline int qpow(int n,int k){int res=1;for(;k;k>>=1,n=1ll*n*n%mod)if(k&1)res=1ll*n*res%mod;return res;}
    int n,p,k,w[1<<20],ans;
    signed main(){
    	n=read(),p=read(),k=read();
    	w[0]=1,w[1]=qpow(3,(mod-1)/k);
    	for(int i=2;i<k;++i)w[i]=1ll*w[i-1]*w[1]%mod;
    	ans=1ll*n*p%mod*qpow(p+1,n-1)%mod;
    	int res=0;
    	for(int i=0;i<k;++i){
    		int x=qpow(1ll*p*w[i]%mod+1,n),y=0;
    		if(i)y=1ll*k*qpow(w[k-i]-1,mod-2)%mod;
    		else y=1ll*k*(k-1)/2%mod;
    		res=(res+1ll*x*y%mod)%mod;
    	}
    	res=1ll*res*qpow(k,mod-2)%mod,ans=(ans+mod-res)%mod;
    	ans=1ll*ans*qpow(k,mod-2)%mod;
    	cout<<ans<<'
    ';
    }
    
    
    路漫漫其修远兮,吾将上下而求索
  • 相关阅读:
    hdu 4183(网络流)
    hdu 1565&hdu 1569(网络流--最小点权值覆盖)
    hdu 1532(最大流)
    HDU 2141 Can you find it?
    HDU 1096 A+B for Input-Output Practice (VIII)
    HDU 1095 A+B for Input-Output Practice (VII)
    HDU 1094 A+B for Input-Output Practice (VI)
    HDU 1093 A+B for Input-Output Practice (V)
    HDU 1092 A+B for Input-Output Practice (IV)
    HDU 1091 A+B for Input-Output Practice (III)
  • 原文地址:https://www.cnblogs.com/zzctommy/p/14334941.html
Copyright © 2011-2022 走看看