FZU 2238 Daxia & Wzc's problem【规律+lucas】
来源:互联网 发布:sql 去掉重复行 编辑:程序博客网 时间:2024/06/01 07:33
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);
…
最后让Daxia求出数列A(m-1)前n项和,得到新数列A(m);
Input
测试包含多组数据,每组一行,包含四个正整数
Output
每组数据输出一行整数,数列A(m)的第i项mod1000000007的值.
Sample Input
1 1 3 4
Sample Output
35
Hint
A(0): 1 2 3 4
A(1): 1 3 6 10
A(2): 1 4 10 20
A(3): 1 5 15 35
So the 4th of A(3) is 35.
分析:第一反应,构造矩阵矩阵快速幂,被时间卡死。
根据等差数列通项公式进行推导,寻找规律。
#include<iostream>#include<cstring>#include<cstdio>using namespace std;#define ll long long int//lucas 上限为p为1e5左右const ll p = 1e9 + 7;ll qkm_mod(ll a, ll b, ll p){ ll res = 1; while (b) { if (b & 1) { (res = res*a) %= p; } (a = a*a) %= p; b >>= 1; } return res;}ll comb(ll a, ll b, ll p){ if (a < b) return 0; if (a == b) return 1; if (b > a - b) a - b; ll ans = 1, ca = 1, cb = 1; for (ll i = 0; i < b; i++) { ca = (ca*(a - i)) % p; cb = (cb*(b - i)) % p; } ans = (ca*qkm_mod(cb, p - 2, p)) % p; return ans;}ll lucas(ll n, ll m, ll p){ ll ans = 1; while (n&&m&&ans) { ans = (ans*comb(n%p, m%p, p)) % p; n /= p; m /= p; } return ans;}int main(){ ll a, d, m, n; while (~scanf("%lld %lld %lld %lld", &a, &d, &m, &n)) { ll ans; (ans = lucas(n + m - 1, m, p)*a) %= p; (ans += lucas(n + m - 1, m + 1, p)*d) %= p; printf("%lld\n", ans); } return 0;}
阅读全文
0 0
- FZU 2238 Daxia & Wzc's problem【规律+lucas】
- FZU 2238Daxia & Wzc's problem
- fzu 2238 Daxia & Wzc's problem
- fzu 2238 Daxia & Wzc's problem
- FZU Problem 2238 Daxia & Wzc's problem(Lucas定理求组合数)
- 【数论】FOJ 2238 Daxia & Wzc's problem
- FOJ有奖月赛-2016年8月 Problem A Daxia & Wzc's problem(找规律)
- FZU-2239 Daxia & Yayamao's problem(斜率优化)
- FZU 2239 Daxia & Yayamao's problem 斜率优化
- FZU Problem 2240 Daxia & Suneast's problem(博弈+[单点更新,区间查询]线段树)
- FZU Problem 2243 Daxia like uber(最短路)
- FZU 2037- Maximum Value Problem(规律题)
- FZU 2243 Daxia like uber
- fzu 2243 Daxia like uber
- fzu - 2164 Jason's problem
- FOJ 有奖月赛 2016-8 C Problem C Daxia & Suneast's problem
- FZU 2242 Daxia like acute triangle
- fzu 2244 Daxia want to buy house
- 第一次LR发帖
- 【神经网络入门】用JAVA实现感知器算法
- maven项目中pom文件报错xx\target\classes\META-INF\MANIFEST.MF (系统找不到指定的路径)的解决
- mySQL基本语句
- NOI2014 魔法森林 LCT维护MST
- FZU 2238 Daxia & Wzc's problem【规律+lucas】
- js获取图片宽高的方法
- 全网稀缺Vue 2.0高级实战 独立开发专属音乐WebAPP
- 【未写完】微信小程序做的步骤
- 序时簿、编辑页 增加合计行
- linux 后台运行jar
- 算法系列(12)LeetCode292 Nim Game
- 能让你少写1000行代码的20个正则表达式
- idea来搭建Springboot项目