hdu 4986 Arc of Dream 矩阵快速幂求递推式

基于stm32f407VGT6控制WS2812的TIM1+PWM+DMA实现方式 项目中使用到了ws2812灯带,作为产品的外观显示灯,经过开发之后,整理一下,仅供大家参考。 WS2812B是一个集控制电路与发光电路于一体的智能外控LED光源。 其外型与一个5050 LED灯珠相同, 每个元件即为一个像素点。 像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路, 还包含有高精度的内部振荡器和可编程定电流控制部分, 有效保证了像素点光的颜色高度一致。数据协议采用单线归零码的通讯方式, 像素点在上电复位以后, DIN端接受从控制器传输过来的数据, 首先送过来的24bit数据被第一个像素 阅读详情

Arc of Dream

Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)
Total Submission(s): 2534    Accepted Submission(s): 777


Problem Description
An Arc of Dream is a curve defined by following function:

where
a 0 = A0
a i = a i-1*AX+AY
b 0 = B0
b i = b i-1*BX+BY
What is the value of AoD(N) modulo 1,000,000,007?
 

Input
There are multiple test cases. Process to the End of File.
Each test case contains 7 nonnegative integers as follows:
N
A0 AX AY
B0 BX BY
N is no more than 10 18, and all the other integers are no more than 2×10 9.
 

Output
For each test case, output AoD(N) modulo 1,000,000,007.
 

Sample Input
  
1 1 2 3 4 5 6 2 1 2 3 4 5 6 3 1 2 3 4 5 6
 

Sample Output
  
4 134 1902
 

Author
Zejun Wu (watashi)
 

Source
 

Recommend
zhuyuanchen520   |   We have carefully selected several similar problems for you:   5197  5196  5195  5194  5193 
 

先将式子转化为递推式, Sn = Sn-1+an-1*bn-1, 其中an*bn也是递推式an*bn=ax*bx*an-1*bn-1+ax*by*an-1+ay*bx*bn-1+ay*by。

递推式可以转为矩阵快速幂O(n^3logk)复杂度,n*n的矩阵的k次幂

[sn an-1*bn-1 an-1 bn-1 1] = [ sn-1 an-2*an-2 an-2 bn-2 1]* [  [1 ax*bx ax*by ay*bx ay*by]  [0 ax*bx ax*by ay*bx ay*by] [0 0 ax 0 ay] [0 0 0 bx by] [0 0 0 0 1]] //共5列

前两个矩阵为1*5,最后个矩阵为5*5.根据递推公式很容易列出第一个矩阵每一项对应的列的系数是什么,从而得到最后一个矩阵。

复杂度是O(5*5*5*logn)


#include <iostream>
#include <cstring>
#include <cstdio>
#include <vector>
#include <algorithm>

using namespace std;

#define M 1000000007

typedef unsigned long long ll;
typedef vector<ll> vec;
typedef vector<vec> mat;

mat mul(mat &a, mat &b)
{
    mat c(a.size(), vec(b[0].size()));
    for(int i = 0 ;i < a.size(); i++)
        for(int j = 0; j < b.size(); j++)
        for(int k = 0; k < b[0].size(); k++)
          c[i][k] = (c[i][k]+a[i][j]*b[j][k])%M;

    return c;
}

mat power(mat a, ll n)
{
    mat  b(a.size(), vec(a.size()));
    for(int i = 0; i < a.size(); i++)
        b[i][i] = 1;
    while(n > 0){
        if(n&1) b = mul(b,a);
        a = mul(a, a);
        n >>= 1;
    }
    return b;
}

int main()
{

    ll n;
    ll a0,ax,ay,b0,bx,by;
    while(cin >> n){
        cin >> a0 >> ax>> ay >> b0 >> bx >> by;
        if(!n){
            cout << 0 <<endl;
            continue;
        }

        a0%=M,b0%=M,ax%=M,ay%=M,bx%=M,by%=M;
        mat a(5, vec(5));
        a[0][0] = 1;
        a[1][0] = ax*bx%M,a[1][1] = ax*bx%M;
        a[2][0] = ax*by%M, a[2][1]=ax*by%M,a[2][2] = ax;
        a[3][0] = ay*bx%M, a[3][1]=ay*bx%M,a[3][3] = bx;
        a[4][0] = by*ay%M, a[4][1] = by*ay%M, a[4][2] = ay, a[4][3] = by, a[4][4] = 1;


        a = power(a, n-1);
        mat fir(1, vec(5));
        fir[0][0] = a0*b0%M, fir[0][1] = a0*b0%M, fir[0][2] = a0, fir[0][3] = b0, fir[0][4] = 1;
        mat ans = mul(fir, a);
        cout << ans[0][0] << endl;
    }
    return 0;
}




最新Python爬虫实战(入门爬虫篇)——案例3:爬取二次元cos图片批量下载到本地(附上完整爬虫代码) 本次案例通过Python爬虫技术实现了二次元图片的批量下载。代码采用模块化设计,函数实现cookies的自动解析,简化了配置流程,涵盖“请求列表页→提取详情页URL→请求详情页→提取图片链接→保存图片”的完整流程,与豆瓣案例的核心逻辑和格式完全对齐。学习重点包括:抓包工具定位多层级数据源、正则表达式匹配复杂链接、模拟请求头绕过反爬机制、文件名安全处理及自动化文件管理。需要注意控制请求频率并遵守网站使用规范,适用于入门爬虫实践,帮助学习者掌握多层级页面爬取的核心逻辑。 阅读详情

相关推荐

AOA(Angle of Arrival,到达角)定位算法及其误差分析的原理和MATLAB仿真_aoa定位算法

如图所示,有基站 S 1 ( x 1 , y 1 , z 1 ) , S 2 ( x 2 , y 2 , z 2 ) S_1(x_1,y_1,z_1),S_2(x_2,y_2,z_2) S1​(x1​,y1​,z1​),S2​(x2​,y2​,z2​),目标 T ( x , y , z ) T(x,y,z) T(x,y,z)。2+(z_1-z_2)^2} step1:两基站间的距离L=(x1−x2)2+(y1​−y2​)2+(z1​−z2​)2。

2401_87555613的博客 1482

Arc of Dream

Arc of Dream Time Limit: 2000/2000 MS (Java/Others)Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 7124Accepted Submission(s): 2232 Problem Description An Arc of Dream is a curve defined by following function: where a0= A0 ai...

Steve_Liu12399的博客 297

BRep实战指南:从理论到文件格式的全面解析

本文全面解析BRep(边界表示法)从基础概念到文件格式的实战应用。详细介绍了BRep的数学定义、工业应用场景,以及STEP、IGES等主流文件格式的对比与使用技巧,帮助读者掌握三维建模核心技术并优化性能。

weixin_29235923的博客 407

HDU-4686-Arc of Dream (矩阵快速幂)

原题链接: An Arc of Dream is a curve defined by following function: where a 0 = A0 a i = a i-1AX+AY b 0 = B0 b i = b i-1BX+BY What is the value of AoD(N) modulo 1,000,000,007? Input There are multiple te...

wjl_zyl_1314的博客 253

车载以太网测试-3【Wireshark介绍】

数据包捕获支持从多种网络接口(如以太网、Wi-Fi、蓝牙等)捕获数据包。可以实时捕获或从文件中读取已捕获的数据包。协议解析支持解析数百种网络协议(如 TCP/IP、HTTP、DNS、FTP 等)。能够深入解析协议头部和负载,帮助用户理解网络通信的细节。过滤功能提供强大的显示过滤器和捕获过滤器,帮助用户快速定位和分析感兴趣的数据包。支持基于协议、IP地址、端口号等多种条件的过滤。统计和分析提供多种统计工具,如流量图、会话统计、协议分层统计等。

车载网络测试工程师的博客 1989

高速特征金字塔多角度旋转模板匹配(工业零部件缺陷检测C++ Opencv版)

博主在性能较好的笔记本上测试算法全部执行效果大约为45ms,在一般配置的笔记本上博主在性能较好的笔记本上测试算法全部执行效果大约为130ms。下图即为实际检测效果。本文最后附有完整代码:Qt版和MFC版本(可直接运行)。...

认真努力,做一只会飞的毛毛虫。 5547

hdu4686---Arc of Dream(矩阵)

Problem Description An Arc of Dream is a curve defined by following function:where a0 = A0 ai = ai-1*AX+AY b0 = B0 bi = bi-1*BX+BY What is the value of AoD(N) modulo 1,000,000,007?Input There ar

Alex 1822

基于 YOLOv26 的 PCB 板缺陷检测:工业级视觉实战

本文提出了一种基于YOLOv26的PCB板缺陷检测系统,通过深度学习技术实现对PCB板缺陷的自动化检测。系统能够识别短路、开路、焊点不良等8种常见缺陷,具有高精度、多类别分类和实时推理等优势。文章详细介绍了系统架构,包括数据采集、预处理、YOLOv26模型检测和后处理模块。在代码实现部分,给出了环境配置、数据预处理与增强的具体方法,使用Albumentations库进行图像增强处理。该系统为电子制造业提供了高效、准确的PCB质量检测解决方案,显著提升了检测效率和准确性。

一键难忘的博客 337

HDU 4686 Arc of Dream

Arc of Dream Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 126    Accepted Submission(s): 44 Problem Description An Arc of Dream

dongdongzhang_的专栏 1584

基于DynamicHead的YOLOv8四头版本改进:面向复杂场景的多目标检测优化【YOLOv8】

YOLOv8的检测头是通过不同尺度的特征层输出检测结果。这些检测头通常包括三个:用于大物体、中等物体和小物体的检测。然而,这种单一结构可能会在复杂场景下失去针对性和灵活性,特别是当多个目标之间差异较大时。为了进一步提升模型在特定目标上的检测性能,DynamicHead的引入为我们提供了一个多检测头的优化方案。本文提出了一种基于DynamicHead的四头版本YOLOv8改进方案,以解决复杂场景下多目标检测的挑战。通过引入四个独立检测头,分别针对不同目标特征进行优化,实现了更灵活的检测结构。

博客 1718

ENVI_基于无人机数据的果树提取与相对健康监测

一、数据处理 1.计算植被指数VDVI或GDVI:Band Math / Spectral Indices 2.制作掩膜:ROI——Threshold——Subset 二、单地块果树提取 1.绘制感兴趣区shp 2.确定果树提取参数:Count Crops 3.输出果树矢量文件:Convert Crops To Shapefile 4.果树相对健康程度分析:Calculate Crop Me...

提供技术服务、资源分享 429690771 1398

HDU - 4686 Arc of Dream 矩阵快速幂

题目大意:An Arc of Dream is a curve defined by following function: Aod(n) = a0 * b0 + a1 * b1 + a2 * b2 … a(n-1) * b(n-1) where a 0 = A0 a i = a i-1*AX+AY b 0 = B0 b i = b i-1*BX+BY What is th

静静地码 1088

计算机视觉学习路线图:从入门到专家

计算机视觉学习路线图:从入门到专家​ ,人工智能,计算机视觉,大模型,AI,计算机视觉学习路线图从七方面展开。先强调数学基础,含线性代数、概率统计和微积分;接着介绍 Python、OpenCV 等编程语言与工具;涵盖边缘检测、特征提取等经典算法;阐述深度学习中 CNN 结构、经典模型及实现;涉及目标检测、图像分割等高级专题;包含图像分类、目标检测和人脸识别等项目实战;最后提及科研进阶的论文阅读、项目参与和论文发表,助学习者从入门到专家。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 7万+

HDU 4686 Arc of Dream(矩阵快速幂构造)

An Arc of Dream is a curve defined by following function: where a0= A0 ai= ai-1*AX+AY b0= B0 bi= bi-1*BX+BY What is the value of AoD(N) modulo 1,000,000,007? Input There are mult...

点点滴滴 224

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

hdoj 4686 Arc of Dream(矩阵快速幂)

一个不难构造的矩阵快速幂,自己硬是找了两天才找到自己错在细节上的东西。 自己犯得错: 1.指数是long long,自己却传了个int 2.构造单位矩阵前,只是把对角线赋值为1,却忘了memset其他值都为0 希望以后别因为这些小错,耽误那么多的时间! 代码: #include using namespace std; typedef long long ll;

CillyB的博客 522

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

HDU4686 Arc of Dream 矩阵快速幂

Arc of Dream Time Limit: 2000/2000 MS (Java/Others)Memory Limit: 65535/65535 K (Java/Others)Total Submission(s): 4246Accepted Submission(s): 1332 Problem Description An Arc of Dream is a cu...

weixin_30532837的博客 125

IEM模型,地表粗糙度模拟

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

HDOJ Arc of Dream 4686【矩阵快速幂】

Arc of Dream Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 3126    Accepted Submission(s): 982 Problem Description An Arc of Drea

豫帝哥哥 1112

hdu 4686 Arc of Dream 杭电多校第九场1001 矩阵

#include #include #include #include #include using namespace std; #define LL __int64 const LL mod=1e9+7; LL n; struct matrix{ LL f[5][5]; }; matrix mul(matrix a,matrix b) { matrix c;

冷月之殇 1685

HDU4686---Arc of Dream(矩阵快速幂,大数据的坑题)

【题目来源】:https://vjudge.net/problem/HDU-4686 【题意】 题意如题面所述。AD(i)=AD(i-1)+ai*bi。 【思路】 很明显,矩阵快速幂,但是这道题相当坑。 第一:若是没有n==0的情况会给出超时的结果。(我还一直在想log 的复杂度怎么会超时) 第二:乘法中间的过程必须各种取余,否则会爆longlong。 好了,步入正题: 很多博客直

Crazy 660

Arc of Dream(矩阵快速幂)

An Arc of Dream is a curve defined by following function:where a0 = A0 ai = ai-1*AX+AY b0 = B0 bi = bi-1*BX+BY What is the value of AoD(N) modulo 1,000,000,007?Input There are multiple test cases

dsaghjkye的博客 425

hdu 4686 Arc of Dream(构造矩阵快速幂)

Arc of Dream Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 309    Accepted Submission(s): 100 Problem Description An Arc of Dream

街角的花街糖 1018

HDU 4686 Arc of Dream (矩阵快速幂)

题意:An Arc of Dream is a curve defined by following function: where a 0 = A0 a i = a i-1 * AX+AY b 0 = B0 b i = b i-1 * BX+BY 给出n,A0,AX,AY,B0,BX,BY,What is the value of AoD(N) modulo 1,000,000,007? 题解

gongyuandaye的博客 235

HDOJ 4686 Arc of Dream 矩阵快速幂

矩阵快速幂: 根据关系够建矩阵 , 快速幂解决. Arc of Dream Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 2164    Accepted Submission(s): 680

码代码的猿猿 1456

HDU4686 Arc of Dream

Arc of Dream Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 4473    Accepted Submission(s): 1392 Problem Description An Arc of Dre

樱花满地集于我心,楪舞纷飞祈愿相随 417

HDU Arc of Dream

An Arc of Dream is a curve defined by following function: where a0 = A0 ai = ai-1*AX+AY b0 = B0 bi = bi-1*BX+BY What is the value of AoD(N) modulo 1,000,000,007? Input There are multip

_ostreamBaba 658

HDU4686An Arc of Dream(矩阵构造****+矩阵快速幂+模运算)

An Arc of Dream is a curve defined by following function: where a0= A0 ai= ai-1*AX+AY b0= B0 bi= bi-1*BX+BY What is the value of AoD(N) modulo 1,000,000,007? Input There are mult...

qq_40293424的博客 190
上一篇: hdu 3879 最小割模型
下一篇: poj 2887 块状数组/线段树
HuanTongH
博客等级 码龄12年 7粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值