zoukankan      html  css  js  c++  java
  • BZOJ 3231 Sdoi2008 递归数列

    3231: [Sdoi2008]递归数列
    
    Time Limit: 1 Sec  Memory Limit: 256 MB
    Submit: 841  Solved: 378
    [Submit][Status][Discuss]
    Description
    
    一个由自然数组成的数列按下式定义:
    对于i <= k:ai = bi
    对于i > k: ai = c1ai-1 + c2ai-2 + ... + ckai-k
    其中bj和 cj (1<=j<=k)是给定的自然数。写一个程序,给定自然数m <= n, 计算am + am+1 + am+2 + ... + an, 并输出它除以给定自然数p的余数的值。
    Input
    
    由四行组成。
    第一行是一个自然数k。
    第二行包含k个自然数b1, b2,...,bk。
    第三行包含k个自然数c1, c2,...,ck。
    第四行包含三个自然数m, n, p。
    Output
    
    仅包含一行:一个正整数,表示(am + am+1 + am+2 + ... + an) mod p的值。
    Sample Input
    
    2
    
    1 1
    
    1 1
    
    2 10 1000003
    
    Sample Output
    
    142
    HINT
    
    
    
    对于100%的测试数据:
    
    1<= k<=15
    
    1 <= m <= n <= 1018
    题目

    不要看错了,最后一点是10的18次方,不是1018

    被坑了,QAQ

    没看错题应该就没有什么问题了吧,矩乘求一下前n项的和

    最后输出sum[n]-sum[m-1]即可

    矩阵的构造

    ans答案矩阵

    【sum,f[n-1],f[n-2],f[n-3]........f[n-k]】

     转移矩阵

    1   c[1]   c[2]    c[3]  ..... c[k-1]      c[k]

    0   c[1]   c[2]    c[3]  ..... c[k-1]   c[k]

    0    1      0      0      0  .......  0     0

    0    0      1      0      0  .......  0     0

    0    0      0      1      0  .......  0     0

    0    0      0      0      1   ......  0     0

    0    0      0      0      0     1....0     0

    0    0      0      0      0     0    1    0

    这个矩阵的长和宽都是k+1

    所以最终的复杂度为O((k+1)^3*(longn+logm))

  • 相关阅读:
    两种常用的jquery事件加载的方法 的区别
    .net修炼笔记
    C#获取MySql 数据常用的代码
    sql时间格式化
    UMEditor(Ueditor mini)修改图片上传路径
    LeetCode_101. Symmetric Tree
    LeetCode_100. Same Tree
    LeetCode_88. Merge Sorted Array
    LeetCode_83. Remove Duplicates from Sorted List
    LeetCode_70. Climbing Stairs
  • 原文地址:https://www.cnblogs.com/something-for-nothing/p/7856874.html
Copyright © 2011-2022 走看看