zoukankan      html  css  js  c++  java
  • hdu 5459 Jesus Is Here 数学

    Jesus Is Here

    Time Limit: 1 Sec  

    Memory Limit: 256 MB

    题目连接

    http://acm.hdu.edu.cn/showproblem.php?pid=5459

    Description

    I've sent Fang Fang around 201314 text messages in almost 5 years. Why can't she make sense of what I mean?
    ``But Jesus is here!" the priest intoned. ``Show me your messages."
    Fine, the first message is s1=‘‘c" and the second one is s2=‘‘ff".
    The i-th message is si=si−2+si−1 afterwards. Let me give you some examples.
    s3=‘‘cff", s4=‘‘ffcff" and s5=‘‘cffffcff".

    ``I found the i-th message's utterly charming," Jesus said.
    ``Look at the fifth message". s5=‘‘cffffcff" and two ‘‘cff" appear in it.
    The distance between the first ‘‘cff" and the second one we said, is 5.
    ``You are right, my friend," Jesus said. ``Love is patient, love is kind.
    It does not envy, it does not boast, it is not proud. It does not dishonor others, it is not self-seeking, it is not easily angered, it keeps no record of wrongs.
    Love does not delight in evil but rejoices with the truth.
    It always protects, always trusts, always hopes, always perseveres."

    Listen - look at him in the eye. I will find you, and count the sum of distance between each two different ‘‘cff" as substrings of the message.

    Input

    An integer T (1≤T≤100), indicating there are T test cases.
    Following T lines, each line contain an integer n (3≤n≤201314), as the identifier of message.

    Output

    The output contains exactly T lines.
    Each line contains an integer equaling to:

    ∑i<j:sn[i..i+2]=sn[j..j+2]=‘‘cff"(j−i) mod 530600414,

    where sn as a string corresponding to the n-th message.

    Sample Input

    9
    5
    6
    7
    8
    113
    1205
    199312
    199401
    201314

    Sample Output

    Case #1: 3
    Case #2: 2
    Case #3: 2
    Case #4: -1
    Case #5: 2
    Case #6: 4
    Case #7: 1
    Case #8: -1

    HINT

    题意

    f1=c,f2=ff,fn = fn-1+fn-2

    然后问你每对cff之间的距离和加起来是多少

    题解:

    暴力找规律,然后类似fib数列一样递推

    不断归纳就好了……

    代码:

    #include <cstdio>
    #include <iostream>
    #include <algorithm>
    #include <cstring>
    
    using namespace std;
    
    const int N=250000;
    const long long pr=530600414;
    long long  sum[N],pre[N],tot[N],suf[N],s[N],f[N];
    
    int main()
    {
        s[5]=3LL;s[6]=4LL;
        pre[5]=5LL;pre[6]=8LL;
        sum[5]=5LL;sum[6]=11LL;
        suf[5]=5LL;suf[6]=8LL;
        tot[5]=5LL;tot[6]=13LL;
        f[5]=5LL;f[6]=16LL;
        for(int i=7;i<N;i++)
        {
            s[i]=(s[i-1]+s[i-2]-1LL)%pr;
            if(i&1)
            {
                pre[i]=(pre[i-2]+pre[i-1]+5)%pr;
                suf[i]=(suf[i-2]+suf[i-1]+5)%pr;
                sum[i]=(sum[i-2]+(s[i-1]-1)*(pre[i-2]+5)+sum[i-1])%pr;
                tot[i]=(tot[i-1]+(s[i-2]-1)*(suf[i-1]+5)+tot[i-2])%pr;
                f[i]=(f[i-2]+f[i-1]+(s[i-1]-1)*(s[i-2]-1)*5+tot[i-2]*(s[i-1]-1)+sum[i-1]*(s[i-2]-1))%pr;
            }
            else
            {
                pre[i]=(pre[i-2]+pre[i-1]+3)%pr;
                suf[i]=(suf[i-2]+suf[i-1]+3)%pr;
                sum[i]=(sum[i-2]+(s[i-1]-1)*(pre[i-2]+3)+sum[i-1])%pr;
                tot[i]=(tot[i-1]+(s[i-2]-1)*(suf[i-1]+3)+tot[i-2])%pr;
                f[i]=(f[i-2]+f[i-1]+(s[i-1]-1)*(s[i-2]-1)*3+tot[i-2]*(s[i-1]-1)+sum[i-1]*(s[i-2]-1))%pr;
            }
           // cout<<i<<" "<<s[i]<<" "<<pre[i]<<" "<<sum[i]<<" "<<tot[i]<<" "<<f[i]<<endl;
        }
        int T;
        long long n;
        scanf("%d",&T);
        for(int cas=1;cas<=T;cas++)
        {
            scanf("%d",&n);
            printf("Case #%d: %I64d
    ",cas,f[n]);
        }
    }
  • 相关阅读:
    (爱加密系列教程十四)利用无效字节码指令引发逆向工具崩溃(一)
    (爱加密系列教程十三) 如何防止工具(八门神器)进行内存修改
    (爱加密系列教程十二) 如何防止jd-gui查看代码
    (爱加密系列教程十一) 关于某银行apk的安全分析
    超简教程:Xgboost在Window上的安装(免编译)
    自己动手实现机器学习算法:神经网络(附源代码)
    Spark 源码解析:TaskScheduler的任务提交和task最佳位置算法
    Spark 源码解析 : DAGScheduler中的DAG划分与提交
    16.Spark Streaming源码解读之数据清理机制解析
    14:Spark Streaming源码解读之State管理之updateStateByKey和mapWithState解密
  • 原文地址:https://www.cnblogs.com/qscqesze/p/4822498.html
Copyright © 2011-2022 走看看