首页 > 代码库 > matrix_超时
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的值。
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 54 1 7 34 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;}
matrix_超时
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。