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. codevs 1198 国王游戏

    传送门 题目描述 Description 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n位 ...

  2. 更改新建Asp.net WebForm的模板 的方法

    C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ItemTemplates\CSharp\Web\2052\WebFor ...

  3. 高效率dc升壓轉換器 應用技巧談 功率設計

    為便攜式電子設備開發電源電路要求設計工程師通過最大程度地提高功率和降低整個系統的功耗來延長電池使用壽命,這推動器件本身的尺寸變得更小,從而有益于在設計終端產品時獲得更高靈活性.這種設計的最重要元器件之 ...

  4. html5中使用标签支持视频播放

    <!--定义视频--> <!-- <video src="E:/ext-4.2.1.883/learnHtml5/Wildlife.wmv" control ...

  5. SSH的内网穿透

    SSH的内网穿透 1.内网:     ssh -N -f -R 2222:127.0.0.1:22 lienzh@我的PC的IP2.外网:     ssh -p 2222 root@localhost ...

  6. HBase HFileBlock

    HFileBlock官方源码注释:   Reading HFile version 1 and 2 blocks, and writing version 2 blocks. In version 1 ...

  7. java—— 文件操作

    目录: 1.博文链接 2. 1.博文链接 向文件未追加内容:流操作通过BufferedWriter向文件末尾追加内容的几种常用方法

  8. C++ —— 类模板的分离式编译

    目录 对于C++中类模板的分离式编译的认识 具体的实例 1.对于C++中类模板的分离式编译的认识 为什么C++编译器不能支持对模板的分离式编译(博文链接) 主要内容:编译器编译的一般工作原理.对模版的 ...

  9. STL中的find_if函数

      上一篇文章也讲过,find()函数只能处理简单类型的内容,也就是缺省类型,如果你想用一个自定义类型的数据作为查找依据则会出错!这里将讲述另外一个函数find_if()的用法 这是find()的一个 ...

  10. xheditor编辑器上传截图图片抓取远程图片代码

    xheditor是一款很不错的开源编辑器,用起来很方便也很强大. 分享一个xheditor直接上传截图的问题解决方法. 第一步.设置参数 localUrlTest:/^https?:\/\/[^\/] ...