标签:namespace getch oam ace pac clu names 而且 c++
\[ f_{i,j}=\sum_{k=1}^{j-i+1}f_{i-1,j-k}\times(Ok^2+Sk+U) \]
\[ f_{i,j-1}=\sum_{k=1}^{j-i}f_{i-1,j-1-k}\times(Ok^2+Sk+U)\=\sum_{k=2}^{j-i+1}f_{i-1,j-k}\times[O(k-1)^2+S(k-1)+U]\=\sum_{k=2}^{j-i+1}f_{i-1,j-k}\times(Ok^2+Sk+U)- \sum_{k=2}^{j-i+1}f_{i-1,j-k}\times(2Ok-O+S)\ =f_{i,j}-f_{i-1,j-1}\times(O+S+U)- \sum_{k=2}^{j-i+1}f_{i-1,j-k}\times(2Ok-O+S) \]
\[ f_{i,j-1}= f_{i,j}-f_{i-1,j-1}\times(O+S+U)-g_{i,j}+f_{i-1,j-1}\times(O+S)\=f_{i,j}-Uf_{i-1,j-1}-g_{i,j} \]
\[ g_{i,j-1}=\sum_{k=1}^{j-i}f_{i-1,j-1-k}\times(2Ok-O+S)\=\sum_{k=2}^{j-i+1}f_{i-1,j-k}\times[2O(k-1)-O+S]\=\sum_{k=2}^{j-i+1}f_{i-1,j-k}\times(2Ok-O+S)- \sum_{k=2}^{j-i+1}f_{i-1,j-k}\times 2O\=g_{i,j}-f_{i-1,j-1}\times(O+S)- \sum_{k=2}^{j-i+1}f_{i-1,j-k}\times 2O \]
\[ g_{i,j-1}= g_{i,j}-f_{i-1,j-1}\times(O+S)-h_{i,j}+f_{i-1,j-1}\times 2O\=g_{i,j}-f_{i-1,j-1}\times(S-O)-h_{i,j} \]
#include<bits/stdc++.h>
#define rg register
#define il inline
#define cn const
#define gc getchar()
#define fp(i,a,b) for(rg int i=(a),ed=(b);i<=ed;++i)
using namespace std;
typedef cn int cint;
il int rd(){
rg int x(0),f(1); rg char c(gc);
while(c<'0'||'9'<c){ if(c=='-') f=-1; c=gc; }
while('0'<=c&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=gc;
return x*f;
}
template<typename T> il void ckmin(T &x,cn T &y){ if(x>y)x=y; }
cint maxn=10010;
int A,m,mod,O,S,U,ff,gg,hh,ans;
int f[2][maxn],g[2][maxn],h[2][maxn],pv=0,nw=1;
int main(){
m=rd(),mod=rd(),A=rd(),O=rd(),S=rd(),U=rd();
ff=U,gg=(S-O+mod)%mod,hh=(O<<1)%mod;
f[0][0]=1;
fp(i,1,min(m,A)){
h[nw][i-1]=g[nw][i-1]=f[nw][i-1]=0;
fp(j,i,m){
h[nw][j]=(h[nw][j-1]+hh*f[pv][j-1])%mod;
g[nw][j]=(g[nw][j-1]+gg*f[pv][j-1]+h[nw][j])%mod;
f[nw][j]=(f[nw][j-1]+ff*f[pv][j-1]+g[nw][j])%mod;
}
ans=(ans+f[nw][m])%mod;
nw^=pv^=nw^=pv;
}
printf("%d",ans);
return 0;
}
标签:namespace getch oam ace pac clu names 而且 c++
原文地址:https://www.cnblogs.com/akura/p/12259557.html