zoukankan      html  css  js  c++  java
  • matrix_超时

    问题 H: matrix

    时间限制: 1 Sec  内存限制: 256 MB
    提交: 26  解决: 10
    [提交][状态][讨论版]

    题目描述

    给定两个长度为n的整数序列l和t,分别作为n×n矩阵F的第一列和第一行,并且保证l1 = t1。同时矩阵中的任意其他元素Fij由以下递推给定:
    Fi,j=a·Fi,j-1 + b·Fi-1,j
    给定系数a,b,要求计算Fn,n模109+7的值。

    输入

    第一行包含三个整数n,a,b。第二行包含n个整数li。第三行包含n个整数ti。n, a, b, li , ti ≤ 5000。

    输出

    共一行包含一个整数,表示Fn,n模109+7的值。

    样例输入

    4 3 5
    4 1 7 3
    4 7 4 8
    

    样例输出

    59716
    
    #include <iostream>
    #include <cstdio>
    #include <cmath>
    
    using namespace std;
    
    int aa[5005][5005];
    
    int main()
    {
        int n,a,b;
        long int mod=pow(10,9)+7;
        scanf("%d %d %d",&n,&a,&b);
        for(int i=0;i<n;i++){
            scanf("%d",&aa[i][0]);
        }
        for(int i=0;i<n;i++){
            scanf("%d",&aa[0][i]);
            if(i>=1){
                for(int j=1;j<n;j++){
                    aa[j][i]=aa[j-1][i]*b+aa[j][i-1]*a;
                    if(aa[j][i]>mod){
                        aa[j][i]%=mod;
                    }
                }
            }
        }
        /*
        for(int i=1;i<n;i++){
            for(int j=1;j<n;j++){
                aa[i][j]=aa[i-1][j]*b+aa[i][j-1]*a;
                if(aa[i][j]>mod){
                    aa[i][j]%=mod;
                }
            }
            for(int j=1;j<n;j++){
                aa[j][i]=aa[j-1][i]*b+aa[j][i-1]*a;
                if(aa[i][j]>mod){
                    aa[j][i]%=mod;
                }
            }
        }
        */
        printf("%d",aa[n-1][n-1]%mod);
        return 0;
    }
  • 相关阅读:
    shiro的授权与认证
    spring-aop
    GC选择之串行收集与并行收集
    4. Tomcat调优
    spring boot 启动 开启注解 加载 bean
    一、JavaScript实现AJAX(只需四步)
    DVWA安装
    CTF入门指南
    Metasploit 学习
    JSP笔记
  • 原文地址:https://www.cnblogs.com/TWS-YIFEI/p/5928389.html
Copyright © 2011-2022 走看看