bzoj 3240 [Noi2013]矩阵游戏

Vmware虚拟机克隆详解:固定ip + 修改uuid等内容 分两大步 设置固定ip 克隆后修改相关配置 本文引用的其他地方的图片。会附上链接 若侵权,删 一、设置静态ip 先进行虚拟网络的编辑 接下来的操作需要管理员权限。(给权限就完事了) 接下来设置网卡: 网络和共享中心→ 更改适配器设置→VMware Network Adapter VMnet8 -> 右键属性 修改TCP/Ipv4的配置,网上常见是这种,笔者是英文的... 阅读详情

                                               bzoj   3240

传送门:

Description

婷婷是个喜欢矩阵的小朋友,有一天她想用电脑生成一个巨大的n行m列的矩阵(你不用担心她如何存储)。她生成的这个矩阵满足一个神奇的性质:若用F[i][j]来表示矩阵中第i行第j列的元素,则F[i][j]满足下面的递推式:

F[1][1]=1
F[i,j]=a*F[i][j-1]+b (j!=1)
F[i,1]=c*F[i-1][m]+d (i!=1)
递推式中a,b,c,d都是给定的常数。

现在婷婷想知道F[n][m]的值是多少,请你帮助她。由于最终结果可能很大,你只需要输出F[n][m]除以1,000,000,007的余数。

Input

一行有六个整数n,m,a,b,c,d。意义如题所述

Output

包含一个整数,表示F[n][m]除以1,000,000,007的余数

Sample Input

3 4 1 3 2 6

Sample Output

85

HINT

样例中的矩阵为:

1 4 7 10

26 29 32 35

76 79 82 85



1<=N,M<=10^1000 000,a<=a,b,c,d<=10^9





思路在代码里:(居然有十进制快速幂,要补啊
/**************
F={
    1
    1
  }
A={
    a b
    0 1
  }
B={
    c d
    0 1
  }

ans=F*(A^(n-1)*B)^(m-1)*A^(n-1)


*****************/




#include<cstdio>
#include<cstring>
#include<iostream>
#include<queue>
#define M  2100000
#define MOD 1000000007

using namespace std;

typedef long long ll;
struct MX{
    ll a[2][2];
    int n,m;
    MX(){memset(a,0,sizeof(a));}
    void init0()
    {
        n=m=2;
        a[1][1]=a[0][0]=1;
        a[1][0]=a[0][1]=0;
    }
    void init1(int  aa,int  bb)
    {
        n=m=2;
        a[0][0]=aa;
        a[0][1]=bb;
        a[1][1]=1;
    }
    void init2(int  aa)
    {
        n=2,m=1;
        a[0][0]=aa,a[1][0]=1;
    }
};

inline MX operator *(MX m1,MX m2)
{
    int i,j,k;
    MX ret;
    ret.n=m1.n;
    ret.m=m2.m;
    if(ret.n==2&&ret.m==2)
    {
        if(m1.a[1][1]!=1||m1.a[1][0]!=0|| m2.a[1][1]!=1||m2.a[1][0]!=0)
            throw 1;
            ret.a[0][0]=m1.a[0][0]*m2.a[0][0]%MOD;
            ret.a[0][1]=(m1.a[0][0]*m2.a[0][1]%MOD+m1.a[0][1])%MOD;
            ret.a[1][0]=0,ret.a[1][1]=1;
            return ret;
    }
    for(i=0;i<m1.n;i++)
     for(j=0;j<m2.m;j++)
       for(k=0;k<m1.m;k++)
     {
        ret.a[i][j]=(ret.a[i][j]+m1.a[i][k]*m2.a[k][j]%MOD)%MOD;
     }
     return ret;
}

MX pow_mod(MX a,char *str ,int len)
{
    int i,j;
    MX t,l0,ret;
    ret.init0();
    l0.init0();
    t=a;
    for(i=len-1;i>=0;i--)
    {
        for(j=0;j<10;j++)
        {
            if(j==str[i]-'0')
            ret=ret*l0;
            l0=l0*t;
        }
        t=l0;
        l0.init0();
    }
    return ret;
}

char s1[M],s2[M];

int main()
{
    ll a,b,c,d,i,j,k;
    scanf("%s %s%lld%lld%lld%lld",s1,s2,&a,&b,&c,&d);
    a%=MOD,b%=MOD,c%=MOD,d%=MOD;
    int l1,l2;
    l1=strlen(s1);
    l2=strlen(s2);
    int x=l1-1;
    s1[x]--;
    while(s1[x]<'0')
    {
        s1[x]+=10;s1[x-1]--;x--;
    }
    x=l2-1;
    s2[x]--;
    while(s2[x]<'0')
    {
        s2[x]+=10;s2[x-1]--;x--;
    }

    MX m1,m2,r1,r2,r3,m3,r4,m4;
    MX t1;
    m1.init1(a,b);
    m2.init1(c,d);
    m4.init2(1);
    r1=pow_mod(m1,s2,l2);
    r2=r1*m2;
    r3=pow_mod(r2,s1,l1);
    r4=r3*r1*m4;
    cout<<r4.a[0][0]<<endl;
    return 0;
}
看到有位神犇的超短代码,跑得还超快。。。(好像是一般的快速幂!!!

#include<cstdio>
typedef long long ll;
struct M
{
    ll x,y;
} t1,t2,t3;
ll P=1e9+7,a,b,c,d,n,m,phi;
char s1[1000010],s2[1000010];
void F(char*s,ll&aa)
{
    for(int t=0; s[t]; t++)aa=(aa*10+s[t]-'0')%phi;
}
M operator*(const M&a,const M&b)
{
    return (M)
    {
        a.x*b.x%P,(a.x*b.y+a.y)%P
    };
}
M operator^(M t,ll k)
{
    M f=t;
    for(--k; k; k>>=1,t=t*t)if(k&1)f=f*t;
    return f;
}
int main()
{
    scanf("%s%s%lld%lld%lld%lld",s1,s2,&a,&b,&c,&d);
    if(a==1&&c==1)phi=P;
    else phi=P-1;
    F(s1,n),F(s2,m),t1=(M)
    {
        a,b
    },t2=(M)
    {
        c,d
    };
    t1=t1^(m-1),t3=t2*t1;
    t3=t3^(n-1);
    t1=t1*t3;
    printf("%lld\n",(t1.x+t1.y)%P);
}
MOD -1  是因为费马小定理        除掉的那些乘积是1  




Maxwell参数化建模 MAXWELL 2019 R3 参数化建模 参数化建模的优势 所谓参数化,就是在电机本体设计中涉及到的各类参数变量化,而每个变量之间又存在一定的制约关系,这样只需修改其中某个或者某些变量就可以做到对整个电机模型合理地改动。 参数化举例 以表贴式电机为例,先画电机定子,如上所示,依次进行后会弹出下面的选项框 上图就是描述电机尺寸的各类参数,接下来进行参数化。 回车ENTER,并给变量ds赋值。 赋值好后,回车ENTER 左下角properties里面就有我们新建立的变量ds了。 继续将剩余的参数 阅读详情

相关推荐

SAP入门技术分享四:模块化程序

SAP入门技术分享三:模块化程序

ITxiaoangzai的博客 1152

NOI2013 矩阵游戏 【数论】

题目描述 婷婷是个喜欢矩阵的小朋友,有一天她想用电脑生成一个巨大的n行m列的矩阵(你不用担心她如何存储)。她生成的这个矩阵满足一个神奇的性质:若用F[i][j]来表示矩阵中第i行第j列的元素,则F[i][j]满足下面的递推式: F[1][1]=1 F[i,j]=a*F[i][j-1]+b (j!=1) F[i,1]=c*F[i-1][m]+d (i!=1) 递推式中a,b,c,...

weixin_30572613的博客 189

【GAMES201学习笔记】物质点法入门

《GAMES201》 学习笔记

捕鱼维的个人小站 9199

【NOI2013】矩阵游戏

【题目描述】   婷婷是个喜欢矩阵的小朋友,有一天她想用电脑生成一个巨大的n行m列的矩阵(你不用担心她如何存储)。她生成的这个矩阵满足一个神奇的性质:若用F[i][j]来表示矩阵中第i行第j列的元素,则F[i][j]满足下面的递推式:   F[1][1]=1   F[i,j]=a*F[i][j-1]+b (j!=1)   F[i,1]=c*F[i-1][m]+d (i!=1)   递推式中

qxAi的博客 1044

告别黑窗口!用VSCode+Native Debug调试C/C++程序,比GDB命令行舒服多了

本文介绍了如何使用VSCode配合Native Debug扩展来调试C/C++程序,替代传统的GDB命令行方式。通过可视化调试环境,开发者可以更高效地管理断点、查看变量和调用栈,大幅提升调试效率。文章详细讲解了环境配置、核心调试功能及高级技巧,帮助开发者快速上手这一现代调试工具。

weixin_26833139的博客 249

基于IMX429-IMX430-IMX432-IMX437系列传感器的SLVS-MIPI桥接方案设计与实现

本文详细介绍了针对索尼IMX429、IMX430、IMX432及IMX437系列传感器的SLVS-MIPI桥接方案设计与实现。针对工业视觉、车载摄像头等应用中主流SoC仅支持MIPI接口的痛点,提出基于FPGA(如Lattice Crosslink-NX)的透传桥接方案,将传感器输出的SLVS信号无损转换为MIPI CSI-2信号,确保数据完整性与低延迟,并探讨了硬件选型、逻辑设计及多传感器兼容性等关键问题。

weixin_29230901的博客 460

[luogu1397 NOI2013] 矩阵游戏 (数学)

[luogu1397 NOI2013] 矩阵游戏 (数学) 传送门 Description 婷婷是个喜欢矩阵的小朋友,有一天她想用电脑生成一个巨大的n行m列的矩阵(你不用担心她如何存储)。她生成的这个矩阵满足一个神奇的性质:若用F[i][j]来表示矩阵中第i行第j列的元素,则F[i][j]满足下面的递推式: F[1][1]=1 F[i,j]=a*F...

Tricksterism 302

QT5.12.1报错:1. clang++:error: :fatal error andriod Input/output error

QT5.12.1报错:1. clang++:error: :fatal error andriod Input/output error 解决方式: 1.qt程序不要放在共享目录下编译,直接拷贝到ubuntu系统中编译 2.修改/home/xt/Qt5.12.1/5.12.1/android_armv7/mkspecs/android-clang中 #QMAKE_LINK = QMAKECXXQMAKE_CXX QMAKEC​XXQMAKE_CFLAGS -Wl,–exclude-libs,libgc

xt18971492243的博客 736

BZOJ 3240 [Noi2013] 矩阵游戏 题解

【原题】

阿蒋的专栏 4130

华为OD新系统机试真题 - 准备生日礼物(Py/Java/C/C++/Js/Go)

华为OD机试新系统真题 4.8【准备生日礼物】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【准备生日礼物】

qq_45776114的博客 1478

智能车图像处理9-进阶篇1--中线的提取

(1)10-50行 基础扫线 (2)56-71 断行0 ,就是比如遇到十字,十字路口下方 第一次断线的地方。 (3)83-124 按照原先有效行,拟线作为中值,然后从中值向左右扫线,同时计算赛道宽度。 (4)125-138 如果出现赛道宽度小于先前有效行,则找到二次扫线的起点,从二次扫线起点处,继续向下扫线,直至结束,同时记录最后的有效行。 (5) 310-- 最后计算左右边线类似于方差的值,用于环岛的判断 ***这里着重描述一下二次扫线,希望大家可以理解的深刻

taiyuezyh的博客 1万+

[bzoj3240][矩阵乘法]矩阵游戏

Description 婷婷是个喜欢矩阵的小朋友,有一天她想用电脑生成一个巨大的n行m列的矩阵(你不用担心她如何存储)。她生成的这个矩阵满足一个神奇的性质:若用F[i][j]来表示矩阵中第i行第j列的元素,则F[i][j]满足下面的递推式: F[1][1]=1 F[i,j]=a*F[i][j-1]+b (j!=1) F[i,1]=c*F[i-1][m]+d (i!=1) 递...

Rose_max的博客 418

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

bzoj3240 [NOI2013]矩阵游戏

bzoj3240 [NOI2013]矩阵游戏 有一个递推式 \(f_{i,\ j}\) 满足: \[\begin{cases}f_{1,\ 1}=1\\f_{i,\ j}=a\times f_{i,\ j-1}+b&(j\neq1)\\f_{i,\ 1}=c\times f_{i-1,\ m}+d&(i\neq1)\end{cases}\] 求 \(f_{n,\ m} \bmod...

weixin_30505485的博客 86

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

BZOJ3240: [Noi2013]矩阵游戏

http://www.lydsy.com/JudgeOnline/problem.php?id=3240 Description 婷婷是个喜欢矩阵的小朋友,有一天她想用电脑生成一个巨大的n行m列的矩阵(你不用担心她如何存储)。她生成的这个矩阵满足一个神奇的性质:若用F[i][j]来表示矩阵中第i行第j列的元素,则F[i][j]满足下面的递推式: F[1][1]=1 F[i,j]=a

Unknown 1309

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

BZOJ3240 [Noi2013]矩阵游戏

本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作。 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! Description 婷婷是个喜欢矩阵的小朋友,有一天她想用电脑生成一个巨大的n行m列的矩阵(你不用担心她如何...

dgoh41514的博客 241

[BZOJ3240][Noi2013]矩阵游戏 && 快速幂

当我知道这题矩阵可以用费马小定理搞快速幂的时候 我眼泪都要落下来了QAQ 首先求一发通项F[1][1]->F[2][1]的通项 然后写成A+B的形式 若a != 1        A = (a^(m-1))*c        B = b*((a^(m-1))/(a-1)) * c + d 若a == 1        A = c        B = B * (m-1) * c +

shiyukun1998的专栏 1458

[BZOJ3240][NOI2013]矩阵游戏

Description 婷婷是个喜欢矩阵的小朋友,有一天她想用电脑生成一个巨大的n行m列的矩阵(你不用担心她如何存储)。她生成的这个矩阵满足一个神奇的性质:若用F[i][j]来表示矩阵中第i行第j列的元素,则F[i][j]满足下面的递推式: F[1][1]=1 F[i,j]=a*F[i][j-1]+b (j!=1) F[i,1]=c*F[i-1][m]+d (i!=1) ...

alu3503的博客 175

[题解]bzoj3240(NOI2013)矩阵游戏

Description婷婷是个喜欢矩阵的小朋友,有一天她想用电脑生成一个巨大的n行m列的矩阵(你不用担心她如何存储)。她生成的这个矩阵满足一个神奇的性质:若用F[i][j]来表示矩阵中第i行第j列的元素,则F[i][j]满足下面的递推式:F[1][1]=1 F[i,j]=a*F[i][j-1]+b (j!=1) F[i,1]=c*F[i-1][m]+d (i!=1) 递推式中a,b,c,d都是

Saramanda的博客 947

bzoj3240: [Noi2013]矩阵游戏

看题目名:矩阵乘法。。。 有公式:x^a=x^(a%phi(p)+phi(p)) (mod p) 因为np,mp互质,可令n=n%phi(p),m=m%(phi(p)). 同一行内可构造矩阵A,设F[i][1]*A'=F[i][m]。 行末到下一行首可构造矩阵B,F[i][1]*B'=F[i+1][1]。 可求得Ans。 #include #include #include

miaom的博客 789

【BZOJ】【3240】【NOI2013】矩阵游戏

十进制快速幂+矩阵乘法+常数优化   听说这题还可以强行算出来递推式……然后乘乘除除算出来……   然而蒟蒻选择了一个比较暴力的做法= =   我们发现这个递推的过程是线性的,所以可以用矩阵乘法来表示,$x=a*x+b$这样一个递推式我们可以这样表示:$$\begin{bmatrix} x& 1 \end{bmatrix} * \begin{bmatrix} a& 0 \...

weixin_30613433的博客 141

【BZOJ3240】[NOI2013]矩阵游戏

题目链接 题目描述 求一个矩阵的第n行m列 递推式 F[1][1]=1F[i,j]=a∗F[i][j−1]+b(j!=1)F[i,1]=c∗F[i−1][m]+d(i!=1)F[1][1]=1F[i,j]=a∗F[i][j−1]+b(j!=1)F[i,1]=c∗F[i−1][m]+d(i!=1) F[1][1]=1\\ F[i,j]=a*F[i][j-1]+b (j!=1)\\ F...

Yu Gi Oh! 308

BZOJ 3240: [Noi2013]矩阵游戏

3240: [Noi2013]矩阵游戏 Time Limit:10 SecMemory Limit:256 MBSubmit:1586Solved:698[Submit][Status][Discuss] Description 婷婷是个喜欢矩阵的小朋友,有一天她想用电脑生成一个巨大的n行m列的矩阵(你不用担心她如何存储)。她生成的这个矩阵满足一个神奇的性质:若用F[...

weixin_30639719的博客 99

[Luogu P1397] [BZOJ 3240] [NOI2013]矩阵游戏

洛谷传送门 BZOJ传送门 题目描述 婷婷是个喜欢矩阵的小朋友,有一天她想用电脑生成一个巨大的nnn行mmm列的矩阵(你不用担心她如何存储)。她生成的这个矩阵满足一个神奇的性质:若用F[i][j]F[i][j]F[i][j]来表示矩阵中第iii行第jjj列的元素,则F[i][j]F[i][j]F[i][j]满足下面的递推式: F[1][1]=1F[1][1]=1F[1][1]=1 ...

LPA的博客 290

BZOJ3240-NOI2013矩阵游戏

题解: 很多人都用矩乘来AAA这道题,但据说矩乘可能会超时………………。 当a=1a=1a=1时: F[i][j]=F[i][1]+(j−1)∗bF[i][j]=F[i][1]+(j−1)∗bF[i][j] = F[i][1] + (j − 1) ∗ b F[i+1][1]=c∗F[i][1]+(j−1)∗b∗c+dF[i+1][1]=c∗F[i][1]+(j−1)∗b∗c+dF[i ...

Mi-Queen 385

[BZOJ3240][NOI2013]矩阵游戏(数论+矩乘)

可以发现,对于任意一个1≤i≤n1≤i≤n, 从f[i][1]f[i][1]到f[i][m]f[i][m]的转移为f[i][m]=am−1f[i][1]+b∑m−2j=0ajf[i][m]=a^{m-1}f[i][1]+b\sum_{j=0}^{m-2}a^j。 先考虑快速求得am−1a^{m-1}的值,考虑到n,m<=101000000n,m<=10^{1000000}的数据范围,直接快速幂是

女装的你,如此好看! 424

bzoj3240 [NOI2013]矩阵游戏 数学递推

题目链接:戳这里 3240: [Noi2013]矩阵游戏 Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 1855  Solved: 847 [Submit][Status][Discuss] Description 婷婷是个喜欢矩阵的小朋友,有一天她想用电脑生成一个巨大的n行m列的矩阵(你不用担心她如何存储)。她生成的这个

Twin Automata的博客 261
上一篇: bzoj 1207 [HNOI2004]打鼹鼠
下一篇: bzoj 1047 [HAOI2007]理想的正方形 单调队列
DJS_K_D
博客等级 码龄12年 2粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值