博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
233 Matrix HDU - 5015 矩阵递推
阅读量:4346 次
发布时间:2019-06-07

本文共 1566 字,大约阅读时间需要 5 分钟。

f[n][m]=f[n-1][m]+f[n][m-1]的形式,可以通过下三角矩阵的线性组合体现出来

//#include
//#pragma comment(linker, "/STACK:1024000000,1024000000") #include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std; const double pi=acos(-1.0); #define ll long long #define pb push_back#define sqr(a) ((a)*(a))#define dis(a,b) sqrt(sqr(a.x-b.x)+sqr(a.y-b.y))const double eps=1e-10;const int maxn=5e4+56;const int inf=0x3f3f3f3f;const ll mod=1e7+7;ll arr[maxn];struct mat{ ll a[15][15]; ll n,m; mat(){memset(a,0,sizeof a);n=0;m=0;} mat(ll x,ll y){memset(a,0,sizeof a);n=x;m=y;} mat operator* (const mat &rhs)const{ mat ans; ans.n=n;ans.m=rhs.m; for(int i=1;i<=n;i++){ for(int j=1;j<=rhs.m;j++){ for(int k=1;k<=m;k++){ ans.a[i][j]=(ans.a[i][j]+a[i][k]*rhs.a[k][j]+mod)%mod; } } } return ans; } mat operator^ (ll rhs)const{ mat ans(n,n),b=*this; for(int i=1;i<=n;i++)ans.a[i][i]=1; for(;rhs;rhs>>=1,b=b*b) if(rhs&1)ans=ans*b; return ans; } };int main(){ ll n,m; while(~scanf("%lld%lld",&n,&m)){ for(int i=2;i<=n+1;i++){scanf("%lld",&arr[i]);} arr[1]=1ll*23;arr[n+2]=1ll*3; mat mult(n+2,n+2); mult.a[n+2][n+2]=1; for(int i=1;i<=n+1;i++)for(int j=1;j<=n+2;j++){ if(j==1){mult.a[i][j]=10;} else if(i>=j){mult.a[i][j]=1;} else if(j==n+2){mult.a[i][j]=1;} } mat fin=mult^(m); ll ans=0; for(int j=1;j<=n+2;j++){ ans=(ans+fin.a[n+1][j]*arr[j]%mod)%mod; } printf("%lld\n",ans); }}

转载于:https://www.cnblogs.com/Drenight/p/8611239.html

你可能感兴趣的文章
[Angular 2] Writing a Simple Angular 2 Component
查看>>
可能会用的到的JQ插件
查看>>
高斯消元模板
查看>>
【GPS】SAP测试GPS模块拿不到sensor数据
查看>>
python 数据类型之列表、元组、字典、集合
查看>>
【Java并发编程】8、各种锁的概念
查看>>
【Java基础】5、java中的匿名内部类
查看>>
Python中capitalize()与title()的区别
查看>>
GRASP (职责分配原则)
查看>>
C#语言特性-运算符重载
查看>>
echart.js的使用
查看>>
IC 设计中DFT的Boundary Scan功能
查看>>
iOS 2D绘图详解(Quartz 2D)之Bitmap
查看>>
Swift - 让程序挂起后,能在后台继续运行任务
查看>>
Python3基本语法
查看>>
【 PostgreSQL】后台周期执行函数实例(shell+crontab)
查看>>
python操作TexturePacker批量打包资源plist png
查看>>
lua性能篇,还没时间看,先保存一下
查看>>
教你手动挡驾驶技术如何提高驾车技巧
查看>>
数据包在网络中传输的IP与MAC改变
查看>>