每日刷题:lightoj-1006 - Hex-a-bonacci
2017-04-11 17:23
393 查看
昨天林神推荐了这个OJ给我,发现还真的是不错,适合小白练手。
题目如下:
就是给出一个代码,让我们优化,直接提交它给的代码的话会超时。
这题看起来很像斐波拉契数列,所以也能想到超时的原因是当n比较大时,递归调用树展开的很大,重复计算次数多,而且结果是可能溢出的,所以输出的时候需要mod10000007(好吧这个数的来历,我也不知道,以后在探寻)。
题目比较水,写过斐波拉契的都知道可以用个滚动数组递推过去。
但是要注意的是递推过程的中间结果是有可能溢出的,所以对于中间结果也要进行mod10000007。因为最终输出是答案的mod10000007。所以我们对中间结果取余进行递推是不会影响最终结果的。
代码如下,纯属为了方便,编程规范就别吐槽了。
题目如下:
就是给出一个代码,让我们优化,直接提交它给的代码的话会超时。
这题看起来很像斐波拉契数列,所以也能想到超时的原因是当n比较大时,递归调用树展开的很大,重复计算次数多,而且结果是可能溢出的,所以输出的时候需要mod10000007(好吧这个数的来历,我也不知道,以后在探寻)。
题目比较水,写过斐波拉契的都知道可以用个滚动数组递推过去。
但是要注意的是递推过程的中间结果是有可能溢出的,所以对于中间结果也要进行mod10000007。因为最终输出是答案的mod10000007。所以我们对中间结果取余进行递推是不会影响最终结果的。
代码如下,纯属为了方便,编程规范就别吐槽了。
#include <iostream> #include <cstdio> long a, b, c, d, e, f; long fn( int n ) { long result=0; if( n == 0 ) return a; if( n == 1 ) return b; if( n == 2 ) return c; if( n == 3 ) return d; if( n == 4 ) return e; if( n == 5 ) return f; long *array=new long[n+1](); array[0]=a; array[1]=b; array[2]=c; array[3]=d; array[4]=e; array[5]=f; for(int i=6;i<=n;i++) { array[i]= array[i-1]% 10000007+array[i-2]% 10000007+array[i-3]% 10000007+array[i-4]% 10000007+array[i-5]% 10000007+array[i-6]% 10000007; } return array ; } int main() { int n, caseno = 0, cases; scanf("%d", &cases); while( cases-- ) { scanf("%d %d %d %d %d %d %d", &a, &b, &c, &d, &e, &f, &n); printf("Case %d: %lld\n", ++caseno, fn(n)% 10000007); } return 0; }
相关文章推荐
- lightOj1006 Hex-a-bonacci
- 【LightOJ】1006 - Hex-a-bonacci(矩阵快速幂)
- Lightoj1006——Hex-a-bonacci(递归转递推)
- LightOJ 1006 C Hex a bonacci (取模、水~)
- lightOJ 1006 - Hex-a-bonacci
- lightoj-1006-Hex-a-bonacci【思维】
- lightoj 1006 - Hex-a-bonacci (FOR循环)
- LightOJ 1006 :Hex-a-bonacci
- LightOj 1006 - Hex-a-bonacci
- LightOJ 1006 Hex-a-bonacci
- LightOJ-1006-Hex-a-bonacci
- Lightoj 1006 Hex-a-bonacci
- LightOJ1006---Hex-a-bonacci(矩阵快速幂)
- LightOj 1006 Hex-a-bonacci(矩阵快速幂)
- LightOJ 1006 - Hex-a-bonacci
- LIGHT OJ 1006 - Hex-a-bonacci 【化简递推式(DP)】
- Light OJ:1006 Hex-a-bonacci(水题)
- 【light-oj】-1006 - Hex-a-bonacci(思维)
- Light OJ 1006 Hex-a-bonacci
- 【1006 - Hex-a-bonacci(亦是水题)】