昆明网站建设哪家,seo内部优化具体做什么,wordpress安装知更鸟主题,瑞安做网站建设哪家好Daxia在2016年5月期间去瑞士度蜜月,顺便拜访了Wzc,Wzc给他出了一个问题#xff1a; Wzc给Daxia等差数列A(0),告诉Daxia首项a和公差d; 首先让Daxia求出数列A(0)前n项和,得到新数列A(1); 然后让Daxia求出数列A(1)前n项和,得到新数列A(2); 接着让Daxia求出数列A(2)前n项和,得到新…Daxia在2016年5月期间去瑞士度蜜月,顺便拜访了Wzc,Wzc给他出了一个问题 Wzc给Daxia等差数列A(0),告诉Daxia首项a和公差d; 首先让Daxia求出数列A(0)前n项和,得到新数列A(1); 然后让Daxia求出数列A(1)前n项和,得到新数列A(2); 接着让Daxia求出数列A(2)前n项和,得到新数列A(3); 规律题首先写出 a、ad、a2d、a3d...这个容易写出 下面一行也容易写出a、2ad、3a3d.... 再下一行确实难写但是通过上面两行可以得出dp[i][j] dp[i-1][j] dp[i][j-1] 然后可以顺利写出后面的找到通项公式。 ans C(mi-1,m)*a C(mi-1,i-2)*d #include cstdio
#include cstdlib
#include cstring
#include cmath
#include algorithm
using namespace std;
#define inf (0x3f3f3f3f)
typedef long long int LL;#include iostream
#include sstream
#include vector
#include set
#include map
#include queue
#include string
LL a,d,m,i;
const int MOD 1000000007;
LL quick_pow (LL a,LL b,LL MOD)
{//求解 a^b%MOD的值LL basea%MOD;LL ans1; //相乘所以这里是1while (b){if (b1){ans(ans*base)%MOD; //如果这里是很大的数据就要用quick_mul}base(base*base)%MOD; //notice//注意这里,每次的base是自己base倍b1;}return ans;
}
LL C (LL n,LL m,LL MOD)
{if (nm) return 0; //防止sb地在循环在lucas的时候if (nm) return 1;LL ans1 1;LL ans2 1;LL mxmax(n-m,m); //这个也是必要的。能约就约最大的那个LL min-mx;for (int i 1; i mi; i){ans1 ans1*(mxi)%MOD;ans2 ans2*i%MOD;}return (ans1*quick_pow(ans2,MOD-2,MOD)%MOD); //这里放到最后进行,不然会很慢
}void work ()
{if (i1){printf (%lld\n,a);return;}LL ans (C(mi-1,m,MOD)*a%MODC(mi-1,i-2,MOD)*d%MOD)%MOD;printf (%lld\n,ans);return ;
}
int main()
{
#ifdef localfreopen(data.txt,r,stdin);
#endifwhile (scanf(%lld%lld%lld%lld,a,d,m,i)!EOF) work();return 0;
} View Code 转载于:https://www.cnblogs.com/liuweimingcprogram/p/5785258.html