Number Sequence (正解:矩阵快速幂)

FDS作业记录 · 复杂度分析 P2:同理,T(N) = 3T(N/3) + 1 = 9T(N/9) + 1 + 3 = ... ... = 3^k * T(1) + 1 + 3 + ... ... + 3^(k-1).令3^k = N,得k = log N( 以3为底 ),故3^k = N,3^(k-1) = N/3,故P2的时间复杂度为N。令3^k = N,得k = log N( 以3为底 ),故P1的时间复杂度为O(logN);因为x是由0不断加1得到的,故时间复杂度即为O(n^(1/2)),选B。说实话我还没法一眼看出来…… 阅读详情

Number Sequence

 A number sequence is defined as follows:

f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.

Given A, B, and n, you are to calculate the value of f(n).

Input
The input consists of multiple test cases. Each test case contains 3 integers A, B and n on a single line (1 <= A, B <= 1000, 1 <= n <= 100,000,000). Three zeros signal the end of input and this test case is not to be processed.
Output
For each test case, print the value of f(n) on a single line.
Sample Input

1 1 3
1 2 10
0 0 0

Sample Output

2
5
题意:

题意很简单就是给你一个数n,让你求F(n)

分析:

网上有很多博客上写找规律,找循环节,但是当你们问他为什么这个周期是这些,却很难回答。如果它真的具有规律并具有固定周期,一定可以通过某种方法证明,只不过我们不会,但对于这个题目应该是没法证明的,看hduoj的discuss中就给了下面几组测试数据:
input
247 602 35363857
376 392 9671521
759 623 18545473
53 399 46626337
316 880 10470347
0 0 0
output
4
3
5
2
3
这几组测试数据如果是通过所谓规律AC的代码,有几个实际上是不对的

因此考虑到斐波那契数列的性质,这个题和斐波那契数列很类似,发现我们应该使用矩阵快速幂来做,矩阵很小,模板直接写。

(f(3)f(2))=(a1b0)(f(2)f(1))(161)(161)(f(3)f(2))=(ab10)(f(2)f(1))

f(3)=a+bf(3)=a+b
(f(n)f(n−1))=(a1b0)n−2(f(2)f(1))(162)(162)(f(n)f(n−1))=(ab10)n−2(f(2)f(1))

设A=(a1b0)n−2A=(ab10)n−2
那么ans=(A[0][0]+A[0][1])%7ans=(A[0][0]+A[0][1])%7

但是我做这题的时候就掉进了一个坑,我的结构体写了构造函数,导致快速幂每次调用乘法的时候都会调用构造函数,导致超时。。。这回真的是记住了

code:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
struct Matrix{
    int m[2][2];
};
Matrix mul(Matrix a,Matrix b){
    Matrix ans;
    for(int i = 0; i < 2; i++){
        for(int j = 0; j < 2; j++){     
            ans.m[i][j] = 0;
            for(int k = 0; k < 2; k++){
                ans.m[i][j] = (ans.m[i][j] + a.m[i][k] * b.m[k][j] % 7) % 7;
            }

        }
    }
    return ans;
}
int main(){
    int A,B,n;
    while(scanf("%d%d%d",&A,&B,&n) != EOF){
        if(A == 0 && B == 0 && n == 0) break;
        if(n <= 2){
            printf("1\n");
            continue;
        }
        Matrix a,ans;
        a.m[0][0] = A;
        a.m[0][1] = B;
        a.m[1][0] = 1;
        a.m[1][1] = 0;
        ans.m[0][0] = ans.m[1][1] = 1;
        ans.m[0][1] = ans.m[1][0] = 0;
        n -= 2;
        while(n){
            if(n & 1)
                ans = mul(ans,a);
            n >>= 1;
            a = mul(a,a);
        }
        printf("%d\n",(ans.m[0][0] + ans.m[0][1]) % 7);
    }
    return 0;
}
数据结构英文习题解析-第一章 算法复杂度分析Algorithm Analysis 所以斐波那契数列会先从F(N)->F(N-1)->F(N-2)层层递归做到F(1),然后返回N层(N是深度)。所以i的范围为1~N,else部分T(N)=O(N^3)。前言:最近快到FDS考试了,po重刷了一下学校的题目,自己整理了一些解析orz 因为po在自己找解析和学习的过程中非常痛苦,所以在此共享一下我的题目和自己写的解题思路,欢迎各位指出错误~T 计算sum(1+2+...+N) = (1 + N) * N / 2,去掉常数部分之后可发现 O(1+2+..+N)也为O(N^2) 阅读详情

相关推荐

2023年数学建模国赛三大赛题核心建模思路与实战代码全解

本文全面解析2023年数学建模国赛三大赛题的核心建模思路与实战代码,涵盖塔式太阳能光热发电系统优化、多波束测深系统动态规划及蔬菜商品化策略建模。通过Python代码示例和优化算法(如遗传算法、NSGA2)展示,帮助参赛者掌握数学建模的关键技术与实战技巧,提升竞赛成绩。

weixin_33713350的博客 331

斐波那契数

...

L_heart 1564

win10 运行lisflood_8踩过的坑

1、安装cuda及VS2019 https://www.bilibili.com/read/cv7335974/ 2、netcdf.h头文件找不到问题 https://www.cnblogs.com/lyggqm/p/12926974.html https://blog.youkuaiyun.com/u011954296/article/details/54617048 3、编码问题 https://blog.youkuaiyun.com/qq_33485434/article/details/81196843 4、

我的笔记 4115

HDU 4099 Revenge of Fibonacci Trie+高精度

Revenge of Fibonacci Problem Description The well-known Fibonacci sequence is defined as following:Here we regard n as the index of the Fibonacci number F(n).This sequence has been studied si...

weixin_30496751的博客 210

手把手教你用示波器实测CAN总线波形:快速区分高速、低速及常见故障

本文详细介绍了如何使用示波器实测CAN总线波形,快速区分高速CAN总线和低速CAN总线,并诊断常见故障。通过实战案例和波形分析,帮助工程师掌握CAN总线信号特征,提升故障排查效率,适用于汽车电子和工业控制领域。

weixin_33217202的博客 409

零基础玩转IndexTTS2:5分钟搭建个人语音克隆工具(支持B站同款情感语音)

本文详细介绍了如何零基础使用IndexTTS2快速搭建个人语音克隆工具,支持B站同款情感语音。IndexTTS2作为自回归零样本TTS系统,突破传统技术限制,实现精准时长控制和丰富情感表达。通过HuggingFace在线演示,用户可轻松克隆音色并调节情感参数,适用于自媒体配音、有声书朗读等场景。

purple的博客 917

数据结构1:算法复杂度分析

复杂度分析 声明的赋值度: 无 每条赋值的复杂度:1 每条判断的复杂度:1 判断的分支:计算所有情况中复杂度较大者 返回return的复杂度:1 但是注意若一个函数中有多个return ,执行时只执行其中一个,只能算一次。 若返回return中仍有表达式,不算复杂度 float rsum ( float list[ ], int n ) { /* add a list of numbers */ if ( n ) //判断 1 return rsu

HGGshiwo的博客 7315

物理AI:连接数字智能与物理世界的下一代人工智能范式

物理AI正在推动人工智能从纯数字领域向物理世界扩展,实现比特到原子的智能跃迁。与传统AI相比,物理AI具有三大核心差异:1)在物理环境中运行;2)处理多模态传感器输入;3)产生可改变物理状态的输出。其技术栈包含感知层(多模态融合)、决策层(边缘计算)、执行层(运动控制)和连接层(5G/6G通信)。关键技术挑战包括:实时多传感器融合、物理约束下的决策规划、以及高精度执行控制。物理AI的发展面临实时性保障、安全验证等核心挑战,但其在机器人、自动驾驶等领域的应用潜力巨大,正成为智能技术落地的关键突破口。

fudaihb的博客 1709

Fibonacci sequence of k order

The Fibonacci Number  that are defined recursively as below:   f0=0 , f1=0 , …, fk-2=0 , fk-1=1,   fn = fn-1 + fn-2 +…+ fn-k      (n=k,k+1,…) Please write a program that lists n+1 items of Fibonacci

happylife1527的专栏 761

docker安装部署openclaw详细教程(安装、卸载、问题处理)

摘要: 本文详细介绍了使用Docker部署OpenClaw本地AI智能体框架的全流程,包括代码下载、容器化安装、交互式配置及Token设置。Docker方案解决了环境配置复杂、依赖冲突等痛点,提供开箱即用的隔离环境。教程涵盖常见错误(如EACCES权限问题、网关启动失败、设备配对需求)的解决方案,并提供了完整的卸载指南。通过Docker部署,用户可快速构建安全、一致的AI智能体开发环境,实现大模型与本地工具的高效连接。

少说,多做 4003

黑猫带你学eMMC协议第22篇:emmc可靠写详解(Write Reliability)

1 前言 1.1 声明 本文依据eMMC JEDEC5.1、网络资料及个人工作经验整理而成,如有部分错误请留言。 本文部分内容可能源自网络,侵删。 本文结合eMMC JEDEC5.1协议手册查看效果更佳。 1.2 内容提要 1、什么是可靠性写属性(Write Reliability)? 2、可靠写和普通的写有什么区别? 3、设置可靠写的流程及流程框图。 4、可靠写需要遵循哪些规则? 1.3 参考链接 本文主要参考链接:http://www.up48.com/cn/support/8_37.html 2 什么

黑猫奥利奥的博客 3120

斐波那契数列

斐波那契数列 在学习JAVA的过程中,自己做了一些笔记,借鉴了一些别的大佬的一些见解,做了一些笔记整理。将这篇笔记传到我的博客上来,希望能够对你有所帮助,同时我自己还有些不理解的地方,也做了标注,大家可以和我一起讨论,关于斐波那契数列的问题很早之前整理的,打算发博客后,将斐波那契数列作为第一篇博客发上来,可能有一些不足之处,希望大家多多包涵。主要列举了一些关于力扣上用到斐波那契数列的题目,还有一些扩展。 1、斐波那契算法 : 题目:剑指 Offer 10- I. 斐波那契数列 难度简单 写一个函数,输入 n

Snailalgorithm的博客 1826

【YOLO26科研级突破】集成BiFPN双向特征金字塔,让多尺度特征融合效率与精度双跃升

打开确保模型解析器能识别BiFPN模块。通过将BiFPN双向特征金字塔集成到YOLO26中,我们实现了一个“全尺度双向特征流动+加权融合+精准检测”的目标检测模型。这个改进不仅在工程上能大幅提升多尺度、复杂场景下的检测精度,更在科研上提供了“双向特征融合”的创新思路——这种思路可以延伸到其他检测网络(如Faster R-CNN、SSD)的Neck模块改进中,帮你在论文中打造独特的研究点。

LXY_LOVE36的博客 200

Number Sequence【矩阵快速幂】

Number SequenceTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 192483    Accepted Submission(s): 48142Problem DescriptionA number sequence is de...

哇-WA 的博客 400

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Number Sequence-(矩阵快速幂-找规律)

A - Number Sequence A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. Given A, B, and n, you are to calculate the value of f(n). Input The input ...

不想起标题 250

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Number Sequence 矩阵快速幂

DescriptionA number sequence is defined as follows:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.Given A, B, and n, you are to calculate the value of f(n).InputThe input consists of mu

xinxiaxindong的博客 322

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Number Sequence (规律or矩阵快速幂)

A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. Given A, B, and n, you are to calculate the value of f(n). Input The input consists of mul...

wa的一声就哭了 426

HDOJ 1005 Number Sequence 矩阵快速幂 代码 + 解析

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1005 部分题头: Problem Description A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7. Given A, B, a...

Melonl的博客 317

计算机网络sequence number,TCP协议中SequenceNumber和Ack Numbe

Sequence Numberlzyws7393074532892018-04-25Number Sequenceqq_391789932452017-09-21理解TCP序列号(Sequence Number)和确认号(Acknowledgment Number)hebbely9822017-01-14Number Sequence(规律)l25336363712902017-07-18Numb...

weixin_42550750的博客 1214

斐波那契数列(Fibonacci Sequence)

公式: Java 代码: public class Solution { public static void main(String[] args) throws Exception { Solution solution = new Solution(); System.out.println(solution.Fibonacci

毛毛的学习笔记 1025

Fibonacci Number

The Fibonacci numbers, commonly denoted F(n) form a sequence, called the Fibonacci sequence, such that each number is the sum of the two preceding ones, starting from 0 and 1. That is, F(0) = 0,   F...

m0_37889928的博客 172

【考研每日一题19】Fibonacci(C++)

原题地址:牛客网 题目描述: The Fibonacci Numbers{0,1,1,2,3,5,8,13,21,34,55...} are defined by the recurrence: F0=0 F1=1 Fn=Fn-1+Fn-2,n>=2 Write a program to calculate the Fibonacci Numbers. 输入描述...

做题记录 383

斐波那契(Fibonacci)数列

斐波那契(Fibonacci)数列斐波那契(Fibonacci)数列斐波那契(Fibonacci)数列 递归状态树 复杂度是指数级的 如果想改善,可以加缓存memo,避免重复计算 再代码优化,清晰 自底向上思想,一般竞赛或者熟练以后,动态规划都是用的自底向上,for循环递推 ...

Major_S的博客 8040

理解TCP序列号(Sequence Number)和确认号(Acknowledgment Number)

原文见:http://packetlife.net/blog/2010/jun/7/understanding-tcp-sequence-acknowledgment-numbers/ 如果你正在读这篇文章,很可能你对TCP“非著名”的“三次握手”或者说“SYN,SYN/ACK,ACK”已经很熟悉了。不幸的是,对很多人来说,对TCP的学习就仅限于此了。尽管年代久远,TCP仍是一个相当复杂并且值得研...

怀揣梦想,努力前行 20万+

矩阵快速幂

 A sequence S n is defined as:  Where a, b, n, m are positive integers.┌x┐is the ceil of x. For example, ┌3.14┐=4. You are to calculate S n.    You, a top coder, say: So easy!    Input   Ther...

qq_40620465的博客 239
上一篇: Happy 2004 (因数和公式+逆元)
下一篇: f(n) HDU 2582(找规律+筛素数+质因子分解详解)
Guuuuuu老师儿
博客等级 码龄9年 259粉丝 718原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值