【HDU3117】Fibonacci Numbers】的更多相关文章

[HDU3117]Fibonacci Numbers 题面 求斐波那契数列的第\(n\)项的前四位及后四位. 其中\(0\leq n<2^{32}\) 题解 前置知识:线性常系数齐次递推 其实后四位还是比较好求,矩阵快速幂就可以了,主要是前四位. 先用线性常系数齐次递推求出斐波那契数列的通项公式 \[ f_n=\frac{\sqrt 5}{5}\left((\frac{1+\sqrt5}{2})^n-(\frac{1-\sqrt5}{2})^n\right) \] 因为数列的前\(39\)项我们…
[HDU1848]Fibonacci again and again(博弈论) 题面 Hdu 你有三堆石子,每堆石子的个数是\(n,m,p\),你每次可以从一堆石子中取走斐波那契数列中一个元素等数量的石子数,两人轮流取,不能操作者输,判定先后手的胜利. 题解 根据\(SG\)定理,三堆石子可以拆开来看,最终状态的\(SG\)函数为这三堆石子\(SG\)函数的异或值. 那么,我们只需要预处理任意数量石子的\(SG\)值就好了. 对于一堆数量为\(x\)的石子的\(SG\)函数为: \[SG(x)=…
[CF55D]Beautiful numbers(动态规划) 题面 洛谷 CF 题解 数位\(dp\) 如果当前数能够被它所有数位整除,意味着它能够被所有数位的\(lcm\)整除. 所以\(dp\)的时候前面所有数的\(lcm\)要压进\(dp\)值中. 又因为\(lcm\)的余数也是有意义的,但是又不能暴力记, 所以记录一下\([1,9]\)所有数的\(lcm\)也就是\(2520\)就好了. 但是数组太大,实际上,有意义的\(lcm\)个数只有不到\(50\)个,重新编号就可以压缩状态了.…
[CF628D]Magic Numbers 题意:求[a,b]中,偶数位的数字都是d,其余为数字都不是d,且能被m整除的数的个数(这里的偶数位是的是从高位往低位数的偶数位).$a,b<10^{2000},m \le 2000 ,0 \le d \le 9$ 题解:用f[i][j]表示有i+1位,第i位是d,且%m=j的数的个数.(这个状态可能有点奇怪,不过比较便于转移)然后转移方式还是惯用的方法,判一下如果原数的偶数位不是d或者奇数位是d则停止计算即可. 对了,题意有bug.题里说个位数的偶数位…
[CF55D]Beautiful numbers 题面 洛谷 题解 考虑到如果一个数整除所有数那么可以整除他们的\(lcm\),而如果数\(x\)满足\(x\bmod Lcm(1,2...,9)=r\),且\(r\bmod Lcm\{x有的数\}=0\),那么这个数一定满足条件. 因为\(Lcm(1,2...,9)=2520\)比较小,所以我们可以存下来. 考虑数位dp,我们设\(f[i][lcm][r]\)表示目前\(dp\)到第\(i\)位,当前已选的数的\(lcm\)为\(lcm\),前面…
http://poj.org/problem?id=3070 (题目链接) 题意 用矩阵乘法求fibonacci数列的第n项. Solution 矩乘入门题啊,题目把题解已经说的很清楚里= =. 矩乘其实很简单,通过自己YY或者是搜索对于一个递推公式求出它所对应的矩阵,然后套个快速幂就可以迅速求解第n项. 代码 // poj3070 #include<algorithm> #include<iostream> #include<cstdlib> #include<…
Fibonacci Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3562    Accepted Submission(s): 1621 Problem Description 2007年到来了.经过2006年一年的修炼,数学神童zouyu终于把0到100000000的Fibonacci数列 (f[0]=0,f[1]=1;f[i]…
Numeros, The Artist, had two lists A and B, such that, B was a permutation of A. Numeros was very proud of these lists. Unfortunately, while transporting them from one exhibition to another, some numbers from List A got left out. Can you find out the…
Sorting is often useful as the first step in many different tasks. The most common task is to make finding things easier, but there are other uses also. Challenge Given a list of unsorted numbers, can you find the numbers that have the smallest absol…
一.列出Fibonacci数列的前N个数 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Fibonacci { class Program { static void Main(string[] args) { cal(); cal2(); //运行结果相同 } /*需求:列出Fibonacci数列的前N个数*/ //方案一:迭代N次,一次计算一项 p…