zoukankan      html  css  js  c++  java
  • Lightoj 1006 Hex-a-bonacci

    Given a code (not optimized), and necessary inputs, you have to find the output of the code for the inputs. The code is as follows:

    int a, b, c, d, e, f;
    int fn( int n ) {
        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;
        return( fn(n-1) + fn(n-2) + fn(n-3) + fn(n-4) + fn(n-5) + fn(n-6) );
    }
    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: %d ", ++caseno, fn(n) % 10000007);
        }
        return 0;
    }

    Input

    Input starts with an integer T (≤ 100), denoting the number of test cases.

    Each case contains seven integers, a, b, c, d, e, f and n. All integers will be non-negative and 0 ≤ n ≤ 10000 and the each of the others will be fit into a 32-bit integer.

    Output

    For each case, print the output of the given code. The given code may have integer overflow problem in the compiler, so be careful.

    Sample Input

    Output for Sample Input

    5

    0 1 2 3 4 5 20

    3 2 1 5 0 1 9

    4 12 9 4 5 6 15

    9 8 7 6 5 4 3

    3 4 3 2 54 5 4

    Case 1: 216339

    Case 2: 79

    Case 3: 16636

    Case 4: 6

    Case 5: 54

    /* ***********************************************
    Author        :guanjun
    Created Time  :2016/6/10 10:54:05
    File Name     :1006.cpp
    ************************************************ */
    #include <iostream>
    #include <cstring>
    #include <cstdlib>
    #include <stdio.h>
    #include <algorithm>
    #include <vector>
    #include <queue>
    #include <set>
    #include <map>
    #include <string>
    #include <math.h>
    #include <stdlib.h>
    #include <iomanip>
    #include <list>
    #include <deque>
    #include <stack>
    #define ull unsigned long long
    #define ll long long
    #define mod 10000007
    #define INF 0x3f3f3f3f
    #define maxn 10010
    #define cle(a) memset(a,0,sizeof(a))
    const ull inf = 1LL << 61;
    const double eps=1e-5;
    using namespace std;
    priority_queue<int,vector<int>,greater<int> >pq;
    struct Node{
        int x,y;
    };
    struct cmp{
        bool operator()(Node a,Node b){
            if(a.x==b.x) return a.y> b.y;
            return a.x>b.x;
        }
    };
    
    bool cmp(int a,int b){
        return a>b;
    }
    ll dp[maxn];
    ll a, b, c, d, e, f,n;
    ll fn( int n ) {
        if(dp[n]!=-1)return dp[n];
        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;
        return dp[n]=(fn(n-1) + fn(n-2) + fn(n-3) + fn(n-4) + fn(n-5) + fn(n-6))%mod;
    }
    int main()
    {
        #ifndef ONLINE_JUDGE
        freopen("in.txt","r",stdin);
        #endif
        //freopen("out.txt","w",stdout);
        int T;
        cin>>T;
        for(int t=1;t<=T;t++){
            memset(dp,-1,sizeof dp);
            cin>>a>>b>>c>>d>>e>>f>>n;
            printf("Case %d: %lld
    ", t, fn(n) % mod);
        }
        return 0;
    }
  • 相关阅读:
    mysql索引最左匹配的理解(转载于知乎回答)
    mysql深度优化与理解(迄今为止读到最优秀的mysql博客)
    PHP数组函数总结与使用
    进程(process)和线程(thread)
    联合索引使用规则(转载)
    mysql优化大全(转自别人 )
    HTTP隧道解决的问题
    HTTP代理协议 HTTP/1.1的CONNECT方法
    vant弹窗提示
    vue获取验证码倒计时
  • 原文地址:https://www.cnblogs.com/pk28/p/5573400.html
Copyright © 2011-2022 走看看