codeforces 717A
题目大意
给定l,r,kl,r,k,求出:
\sum_{i=l}^r \binom{f_{i+2}}{k}
f(n)=n,n≤1f(n) = n,n \leq 1
f(n)=f(n−1)+f(n−2),n>1f(n)=f(n-1)+f(n-2),n>1
数据范围
k≤500k \leq 500,0≤l≤r≤10180 \leq l \leq r \leq 10^{18}
题解
因为(xk)=x!k!(x−k)!\binom{x}{k} = \frac{x!}{k!(x-k)!},因此(xk)\binom{x}{k}可以写成一个kk次的多项式,再前缀和减一下,问题变成要求:
\sum_{i=0}^r f_i^k
令a=1+5√2,b=1−5√2a=\frac{1+\sqrt{5}}{2},b=\frac{1-\sqrt{5}}{2},我们知道:
fn=5√5(an−bn)f_n = \frac{\sqrt{5}}{5}\left(a^n-b^n\right),因此有:
\begin{aligned} &\sum_{i=0}^r f_i^k \\ =&\sum_{i=0}^r \left(\frac{\sqrt{5}}{5}\left(a^i-b^i\right)\right)^k \\ =&\left(\frac{\sqrt{5}}{5}\right)^k \sum_{i=0}^r \sum_{j=0}^k \binom{k}{j}a^{ij}(-b)^{i(k-j)}\\ =&\left(\frac{\sqrt{5}}{5}\right)^k \sum_{j=0}^k (-1)^{k-j}\binom{k}{j}\sum_{i=0}^n \left(a^jb^{k-j}\right)^i\\ \end{aligned}
我们现在将每个数表示成 x=a+b5√x=a+b\sqrt{5}的形式,我们可以很轻松的定义这些数的加减乘运算,那么最后我们相当于枚举 jj,求出x=ajbk−jx=a^jb^{k-j},然后倍增地求出 ∑ni=0xi\sum_{i=0}^n x^i,最后乘上 (5√5)k\left(\frac{\sqrt{5}}{5}\right)^k即可。
因为每个 fif_i都是整数,因此最终求出来的数 xx的bb必然为0,直接返回实数部分就好了。
时间复杂度:
O(k2logr)O(k^2\log r)
codeforces 717A相关推荐
- CodeForces 375D Tree and Queries
传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...
- 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)
题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...
- 【codeforces 812C】Sagheer and Nubian Market
[题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...
- CodeForces 获得数据
针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...
- codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)...
题目链接:http://www.codeforces.com/problemset/problem/281/A 题意:将一个英文字母的首字母变成大写,然后输出. C++代码: #include < ...
- CodeForces 595A
题目链接: http://codeforces.com/problemset/problem/595/A 题意: 一栋楼,有n层,每层有m户,每户有2个窗户,问这栋楼还有多少户没有睡觉(只要一个窗户灯 ...
- codeforces A. Jeff and Digits 解题报告
题目链接:http://codeforces.com/problemset/problem/352/A 题目意思:给定一个只有0或5组成的序列,你要重新编排这个序列(当然你可以不取尽这些数字),使得这 ...
- Codeforces Round #506 (Div. 3)
Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...
- Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)
Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈) 标签: codeforces 2017-06-02 11:41 29人阅读 ...
最新文章
- 十种方法保持云中数据安全
- [机器学习]回归--Decision Tree Regression
- 3997: [TJOI2015]组合数学
- Asterisk PBX 快速安装向导
- 讲讲 MySQL 中的 WAL 策略和 CheckPoint 技术
- iPhone 的续航有望加长!749 元的“磁吸充电宝”你会买吗?
- 【转】探讨android更新UI的几种方法----不错
- 用java来实现FIFO先进先出的队列
- Kafka日志刷新策略
- Spring Cloud 关于 hystrix 的异常 fallback method wasn't found
- paip.输入法编程---输入法ATIaN历史记录 c823
- TSC条码打印机常见故障及解决方法
- 编程之美1.7 光影切割问题
- 廖雪峰Git教程:远程仓库
- orcad元件封装制作
- 线性定常系统的离散化
- android开发环境搭建——android studio
- java获取中文首字母
- 英语单词辨析(同类单词)
- 历年计算机基础试题和答案,自学考试00018计算机应用基础历年试题与答案
热门文章
- mathcad 15.0安装教程
- 西安交警如何借力智能化科技手段开展城市交通“智”理?
- vue vue-seamless-scroll 无缝滚动依赖
- 软件开发中UI设计需要注意什么?
- tc275的flexcan的接收与发送
- 赫拉(hera)分布式任务调度系统之项目启动(二)
- 计算机基础_程序是怎样跑起来的_04_有棱有角的内存
- linux下write()和read()函数详解
- OpenGL,glut,glew,glfw,mesa等
- 友盟对android的应用,Android 集成友盟统计