躧搿螞 解题报告
来源:互联网 发布:端口回流和h323穿透 编辑:程序博客网 时间:2024/06/11 19:32
给定k,a,n,d
定义
求
多组数据。
时限:5s,空间限制:256MB
这个题当时考试的时候没时间做了,其实还是比较可做的。
看到这么一坨吃屎的式子,首先我们可以先试着求一求g(n)。
考虑
…
将x个方程的左右两边相加,即可得到:
这样的话,我们就可以递推出
注意到对于同一个形如
系数我们已经可以求出来了,注意里面的式子,会发现它又是我们熟悉的形如(只是形如)
但是,真正需要注意的地方是d=0的时候!这个式子是没有意义的,也就是说d=0时不能用这个式子来求,应该单独讨论这种蛋疼的情况。
这样的话,我们就可以在
代码:
#include<cstdio>#include<cstring>#include<cmath>#include<iostream>using namespace std;#include<algorithm>#define Mod 1234567891typedef long long LL;LL pow(int a,int b){ LL ans=1,t=a; for(;b;b>>=1,t=t*t%Mod) if(b&1) ans=ans*t%Mod; return ans;}LL ni(int a){ return pow(a,Mod-2);}LL C[130][130];LL xishu[130][130];LL said[135];int main(){ freopen("sum.in","r",stdin); freopen("sum.out","w",stdout); int k,i,j,T; for(i=0;i<130;++i)C[i][0]=1; for(i=1;i<130;++i) for(j=i;j;--j) C[i][j]=(C[i-1][j-1]+C[i-1][j])%Mod; xishu[0][1]=1; LL niyuan; int fu; for(k=1;k<130;++k){ fu=1; for(j=2;j<=k+1;++j,fu=-fu) for(i=k+1-j+1;i;--i) xishu[k][i]=(xishu[k][i]+fu*xishu[k-j+1][i]*C[k+1][j])%Mod; niyuan=ni(k+1); xishu[k][k+1]=1; for(j=k+1;j;--j)xishu[k][j]=(xishu[k][j]*niyuan%Mod+Mod)%Mod; } scanf("%d",&T); LL a,n,d,start,end,fac; LL ans; int K; while(T--){ scanf("%d%I64d%I64d%I64d",&K,&a,&n,&d); //said start=a,end=(a+n*d)%Mod; said[0]=n; for(k=1;k<=K+2;++k){ start=start*a%Mod,end=end*(a+n*d%Mod)%Mod; fu=1; said[k]=(end-start)%Mod; fac=d*d%Mod; for(j=2;j<=k+1;++j,fu=-fu,fac=fac*d%Mod)said[k]=(said[k]+fu*fac*C[k+1][j]%Mod*said[k+1-j])%Mod; said[k]=said[k]*ni((k+1)*d%Mod)%Mod; } if(d){ start=a; ++said[0]; for(k=1;k<=K+2;++k,start=start*a%Mod)said[k]=((said[k]+start)%Mod+Mod)%Mod; } else{ start=1; for(k=0;k<=K+2;++k,start=start*a%Mod)said[k]=(n+1)*start%Mod; } //cal first ans=0; for(i=1;i<=K+2;++i)ans=(ans+xishu[K+1][i]*said[i])%Mod; ans=Mod-ans; //cal second for(i=1;i<=K+1;++i)ans=(ans+xishu[K][i]*((said[i]+said[i+1])%Mod))%Mod; printf("%I64d\n",ans); }}
总结:
①考试时不要思考一道题超过半小时!
②做模的时候一定要仔细想加减乘除是否会爆,每一步都可能跪!
③一定要给自己出卡范围、卡上下界的特殊数据!
0 0
- 躧搿螞 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- 解题报告
- Antiprime解题报告
- expr解题报告
- 华容道解题报告
- tju解题报告
- zju1062/pku1095解题报告
- UsacoGate解题报告 --- 序曲
- ZJU 2060 解题报告
- ZJU 1331 解题报告
- ZJU 1115 解题报告
- ZJU1057解题报告
- js的数组ECMAScript 5加入的方法(一)
- Java 截取字符串
- poj 2287 Tian Ji -- The Horse Racing
- IOS UITextView 提交建议反馈
- JSTL整理总结
- 躧搿螞 解题报告
- mysql安装后无法登陆或者jdbc无法连接解决方法
- poj 2063 Investment
- 今天是头一天,以后有什么好的资料,就收集到博客里面了。
- 欢迎使用CSDN-markdown编辑器
- 创建对象和使用对象
- 使用common-fileupload实现文件的上传
- 蓝桥杯——二的次幂表示
- java socket tcp重连等 处理粘包、沾包