• kuangbin带你飞,矩阵(简单数学推导题)


    A - Jzzhu and Sequences
    Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u
    Submit Status

    Description

    Jzzhu has invented a kind of sequences, they meet the following property:

    You are given x and y, please calculate fn modulo 1000000007(109 + 7).

    Input

    The first line contains two integers x and y(|x|, |y| ≤ 109). The second line contains a single integer n(1 ≤ n ≤ 2·109).

    Output

    Output a single integer representing fn modulo 1000000007(109 + 7).

    Sample Input

    Input
    2 3
    3
    Output
    1
    Input
    0 -1
    2
    Output
    1000000006

    Hint

    In the first sample, f2 = f1 + f33 = 2 + f3f3 = 1.

    In the second sample, f2 =  - 1;  - 1 modulo (109 + 7) equals (109 + 6).

    题目大意:

      输入f2和f1的值,最后算出fn的值。

    解题思路:

    f[1] = x;f[2] = y;
    f[i] = f[i-1]+f[i+1]
    i = 1;
    f[1] = f[0]+f[2];->f[0] = x-y;
    i = 2;
    f[2] = f[1]+f[3];->f[3] = y-x;
    i = 3;
    f[3] = f[2]+f[4];->f[4] = -x;
    i = 4;
    f[4] = f[3]+f[5];->f[5] = -y
    i = 5;
    f[5] = f[4]+f[6];->f[6] = x-y;

    一开始被51组数据卡了三次,原因就是在取MOD的过程中,如果a[n]<0..while ( a[n]<0 )a[n]+=MOD;将其变为正数后,才能进行a[n]%MOD的运算。

    代码:

    # include<cstdio>
    # include<iostream>
    # include<algorithm>
    # include<functional>
    # include<cstring>
    # include<string>
    # include<cstdlib>
    # include<iomanip>
    # include<numeric>
    # include<cctype>
    # include<cmath>
    # include<ctime>
    # include<queue>
    # include<stack>
    # include<list>
    # include<set>
    # include<map>
    
    using namespace std;
    
    const double PI=4.0*atan(1.0);
    
    typedef long long LL;
    typedef unsigned long long ULL;
    
    # define inf 999999999
    # define MOD 1000000007
    
    LL a[10];
    int x,y,n;
    void init()
    {
        a[0] = x-y;
        a[1] = x;
        a[2] = y;
        a[3] = y-x;
        a[4] = -x;
        a[5] = -y;
    
    }
    
    int main(void)
    {
        while ( cin>>x>>y )
        {
            init();
            cin>>n;
            n%=6;
            while ( a[n]<0 )
                a[n]+=MOD;
                cout<<a[n]%MOD<<endl;
        }
    
        return 0;
    }
    View Code
  • 相关阅读:
    CSS 中 Font-Family 中英文对照表
    0号首页,移动应用快捷门户
    身边的大数据和我们的着手点
    php单例模式
    原生JS实现ajax与ajax的跨域请求
    two.js之实现动画效果
    H5中的拖放
    简说chart2.4的应用,以及Uncaught ReferenceError : require is not defined的解决
    JS中的作用域以及全局变量的问题
    JavaScript 框架------------AngularJS(下)
  • 原文地址:https://www.cnblogs.com/wikioibai/p/4392761.html
Copyright © 2020-2023  润新知