首页 > 其他分享 >hdu 5171(矩阵快速幂)

hdu 5171(矩阵快速幂)

时间:2023-05-29 18:31:51浏览次数:36  
标签:hdu Java 数列 矩阵 5171 Sn 那契 Fn


GTY's birthday gift



Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)



Problem Description


a,b∈S), and add a+b


 



Input


2≤n≤100000,1≤k≤1000000000). The second line contains n elements ai ( 1≤ai≤100000)separated by spaces , indicating the multiset S .


 



Output


mod 10000007).


 



Sample Input


3 2 3 6 2


 



Sample Output


35


 


解题思路:



想要和最大,那么每次必定从集合里面拿出最大的两个出来相加,然后k次后面就类似斐波那契数列了。

由斐波那契数列公式知:Fn=Fn-1+Fn-2,求和公式有Sn=Sn-1+Fn.因此用这两个公式构造矩阵,进行矩阵快速幂。


   

Sn-1    | 1 1 0|   Sn 
 


         Fn   * | 0 1 1| =Fn+1 
 


         Fn-1    | 0 1 0|   Fn




然后ans=(Sn+(sum-a[n-1]-a[n-2]))%mod(sum为原集合总和,然后减去最大的两个,加上k次后的序列之和(即斐波那契数列和))。

标签:hdu,Java,数列,矩阵,5171,Sn,那契,Fn
From: https://blog.51cto.com/u_16143128/6373504

相关文章

  • hdu 5157(manacher+前缀和+树状数组)
    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5157解题思路:我们可以先用mancher算法对字符串进行处理,把以每个点为中心的回文串半径求出来,然后进行处理。加入对以p为中心的点,从p-r[i]+1~p都是回文串的开头,那么对于每个回文串(开头是j)只要记录结尾从1~j-1的回文串个数,我们可......
  • 前缀和 (Acwing_796 子矩阵的和)
    题目1.S[i,j]即为图1红框中所有数的的和为:S[i,j]=S[i,j−1]+S[i−1,j]−S[i−1,j−1]+a[i,j]2.(x1,y1),(x2,y2)这一子矩阵中的所有数之和为:S[x2,y2]−S[x1−1,y2]−S[x2,y1−1]+S[x1−1,y1−1]#include<iostream>usingnamespacestd;constintN=1e3+10;int......
  • 什么是数据结构中的特殊矩阵和稀疏矩阵
    在数据结构中,特殊矩阵和稀疏矩阵是描述矩阵中元素分布特点的两个概念。特殊矩阵(SpecialMatrix)是指具有一定规律和特殊性质的矩阵,其中大部分元素具有相同的值或者具有特定的规律。特殊矩阵的特点在于其元素之间存在一种明显的关联关系,可以利用这种关系来进行高效的存储和操作。......
  • 描述图的两种数据结构 - 邻接表和邻接矩阵
    图的邻接表和邻接矩阵是两种常用的表示图的数据结构,用于描述图中各个顶点之间的连接关系。图是由一组顶点和一组边组成的数据结构,顶点表示图中的对象,边表示对象之间的关系。邻接表和邻接矩阵都可以有效地表示图的结构,并提供了不同的优势和适用场景。邻接表:邻接表是一种链表的......
  • 有序矩阵中的第 k 个最小数组和-小顶堆法
    有序矩阵中的第k个最小数组和题目描述方法一从上到下遍历矩阵的所有行,假设计算出了前\(i−1\)行形成的前\(k\)个最小数组和(记作\(sum\)),遍历到第\(i\)行时,把\(sum\)与第\(i\)行的数两两相加,然后只保留其中最小的\(k\)个数,作为新的\(sum\),然后继续遍历矩阵的下......
  • 有序矩阵中的第 k 个最小数组和
    1.暴力记录前k个classSolution{public:intkthSmallest(vector<vector<int>>&mat,intk){vector<int>pre(k,0);//存储前k个最小的和intcur[mat[0].size()*k];//存储intsize=1;//用于记录pre当前大小for(auto&r......
  • 深入分析:矩阵梯度类实例研究
    写在前面本文主要用于围绕矩阵类求梯度等问题进行证明与分析,由于笔者的数理基础浅薄,下面的证明过程若存在错误,欢迎评论指正。矩阵梯度的通用方法:先将矩阵写成微分形式,\(df=tr(GdX)\),然后得到$\nablaf=G^T$案例1\(\begin{array}{ll}\min_{U}&\dfrac{1}{2}\left\|\boldsymbol{......
  • 算法刷题记录:回行矩阵(未AC,TLE了)
    题目链接:https://ac.nowcoder.com/acm/contest/19306/1026题目分析这种题,画个图,模拟就对啦。TLE代码#include<iostream>usingnamespacestd;intn,cnt;intw[25][25];intmain(){cin>>n;//构建框架intdx=1,dy=1;while(1)......
  • #295. 「BJWC2010」矩阵距离 题解 2021-09-23 21:42:32
    #295.「BJWC2010」矩阵距离又是一道需要真正思考了才可以做出来的水题。题目描述给出一个N*M的01矩阵,输出每个0到离这个点最近的1的距离。思考历程暴力由于$N\le10^3$如果在赛场上出现这个题,我们优先考虑暴力。暴力也是很简单,从每个为0的点出发bfs找到与最近的......
  • 矩阵快速幂总结
    例题:LuoguP3977[TJOI2015]棋盘朴素做法明显可以进行状压DP,用\(f_{i,j}\)表示在第\(i\)行时下一行状态为\(j\)的方案数。但是这样复杂度是\(\Omicron(n2^{2m})\)的,即便预处理优化也只能达到\(\Omicron(nm2^m)\),因此需要对算法进行优化。优化思路+方法发现每次从......