Everybody knows Fibonacci numbers, now we are talking about the Tribonacci numbers: 
T[0] = T[1] = T[2] = 1; 
T[n] = T[n - 1] + T[n - 2] + T[n - 3] (n >= 3)

Given a and b, you are asked to calculate the sum from the ath Fibonacci number to the bth Fibonacci number, mod 1,000,000,007, that is (T[a] + T[a + 1] + ... + T[b]) % 1,000,000,007.

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;

;
;

__int64 N;

void multipy( __int64 a[MAX_N][MAX_N], __int64 b[MAX_N][MAX_N], __int64 c[MAX_N][MAX_N] ){
    ; i <= ; i++ ){
        ; j <= ; j++ ){
            c[i][j] = ;
            ; k <= ; k++ ){
                c[i][j] = ( c[i][j] + a[i][k] * b[k][j] % MOD ) % MOD;
            }
        }
    }
}

void get_matrix_pow( __int64 a[MAX_N][MAX_N], __int64 n ){
    __int64 ans[MAX_N][MAX_N] = {};
    __int64 temp[MAX_N][MAX_N];
    ; i <= ; i++ )   ans[i][i] = ;

    while( n ){
         ==  ){
            multipy( ans, a, temp );
            memcpy( ans, temp, sizeof( __int64 ) * MAX_N * MAX_N );
        }
        multipy( a, a, temp );
        memcpy( a, temp, sizeof( __int64 ) * MAX_N * MAX_N );
        n /= ;
    }
    memcpy( a, ans, sizeof( __int64 ) * MAX_N * MAX_N );
}

__int64 solve( __int64 n ){
    __int64 a[MAX_N][MAX_N] = {};
     ){
        ;
    }
     ){
        ;
    } ){
        ;
    }
    a[][] = ;a[][] = ;a[][] = ;a[][] = ;
    a[][] = ;a[][] = ;a[][] = ;a[][] = ;
    a[][] = ;a[][] = ;a[][] = ;a[][] = ;
    a[][] = ;a[][] = ;a[][] = ;a[][] = ;
    get_matrix_pow( a, n -  );
    __int64 ans = ;
    __int64 b[MAX_N];
    b[] = b[] = b[] = ;
    b[] = ;
    ; i <= ; i++ ){
        ans = ( ans + a[][i] * b[i] % MOD ) % MOD;
    }
    return ans;
}

int main(){
    __int64 A, B;
    while( scanf( "%I64d%I64d", &A, &B ) != EOF ){
        printf(  ) + MOD ) % MOD );
    }
    ;
}

tribonacci的更多相关文章

  1. [LeetCode] 1137. N-th Tribonacci Number

    Description e Tribonacci sequence Tn is defined as follows: T0 = 0, T1 = 1, T2 = 1, and Tn+3 = Tn + ...

  2. 【Leetcode_easy】1137. N-th Tribonacci Number

    problem 1137. N-th Tribonacci Number solution: class Solution { public: int tribonacci(int n) { ) ; ...

  3. LeetCode.1137-第N个泰波那契数(N-th Tribonacci Number)

    这是小川的第409次更新,第441篇原创 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第260题(顺位题号是1137).Tribonacci(泰波那契)序列Tn定义如下: 对于n&g ...

  4. 1137. N-th Tribonacci Number(Memory Usage: 13.9 MB, less than 100.00% of Python3)

    其实思路很简单,套用一下普通斐波那契数列的非递归做法即可,不过这个成绩我一定要纪念一下,哈哈哈哈哈 代码在这儿: class Solution: def tribonacci(self, n: int ...

  5. 【leetcode】1137. N-th Tribonacci Number

    题目如下: The Tribonacci sequence Tn is defined as follows: T0 = 0, T1 = 1, T2 = 1, and Tn+3 = Tn + Tn+1 ...

  6. 【LeetCode】1137. N-th Tribonacci Number 解题报告(C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 动态规划 日期 题目地址:https://leetc ...

  7. Tribonacci UVA - 12470 (简单的斐波拉契数列)(矩阵快速幂)

    题意:a1=0;a2=1;a3=2; a(n)=a(n-1)+a(n-2)+a(n-3);  求a(n) 思路:矩阵快速幂 #include<cstdio> #include<cst ...

  8. UVA12470—Tribonacci (类似斐波那契,简单题)

    题目链接:https://vjudge.net/problem/UVA-12470 题目意思:我们都知道斐波那契数列F[i]=F[i-1]+F[i-2],现在我们要算这样的一个式子T[i]=T[i-1 ...

  9. Python简单试题

    1,相乘次数 题目要求描述: 一个整数每一位上的数字相乘,判断是否为个位数,若是则程序结束 ,不是则继续相乘,要求返回相乘次数. 例:39 > 3*9=27 > 2*7=14 > 1 ...

随机推荐

  1. cf D. Vessels

    http://codeforces.com/contest/371/problem/D 第一遍写的超时了,然后看了别人的代码,思路都是找一个点的根,在往里面加水的时候碗中的水满的时候建立联系.查询的时 ...

  2. h.264 率失真优化

    Rate Distortion Optimization 搜索时,一个不可避免的问题就是如何对mv进行比较,从而得到最优 对于同一压缩算法来说,码率越高表示图像质量越好.失真越小,但是码率越高要求更大 ...

  3. 关于KeilC51的指针(参见, page 106-113, keil uv2 user's guide 09,2001)

    keil中的指针分为两种,一种是普通指针,兼容标准C语言的指针:另一种是我翻译成内存特殊指针(memory-specific pointers,翻译的不好:>) 一.普通指针 普通指针的定义方式 ...

  4. C51与汇编语言混合编程

    函数内部混合编程 若想在C语言函数内部使用汇编语言,应使用以下Cx51编译器控制命令: #pragma asm ; Assembly code #pragma endasm  功能作用:asm和end ...

  5. 【HDOJ】1314 Numerically Speaking

    学了几天的Java了,终于独立A了一道大数计算.感觉还得练Java啊. import java.util.Scanner; import java.math.BigInteger; import ja ...

  6. 找第k大数,最坏时间复杂度O(n)

    (转载请注明出处,http://www.cnblogs.com/fangpei/p/3538331.html ) 以前写过的一篇,搬过来. 上算法课的时候听到老师讲这个问题,觉得还是蛮有意思的.已知数 ...

  7. SpringMVC+SwfUpload进行多文件同时上传

    由于最近项目需要做一个多文件同时上传的功能,所以好好的看了一下各种上传工具,感觉uploadify和SwfUpload的功能都比较强大,并且使用起来也很方便.SWFUpload是一个flash和js相 ...

  8. 这是一个在Windows live 上实验的文章

    这是一个windows 实验用的文章,希望一次成功

  9. 组合数学第一发 hdu 2451 Simple Addition Expression

    hdu 2451 Simple Addition Expression Problem Description A luxury yacht with 100 passengers on board ...

  10. 告诉你LTE-FDD与LTE-TDD的区别

    [PConline 技术分析]移动早在去年已经拿下了TD-LTE的4G牌照,而中国联通与中国电信的FDD-LTE的牌照在近日正式拿下,而对于4G网络,有多少真正了解呢?接下来笔者就为大家解释一下4G的 ...