博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu- 5015 233 Matrix
阅读量:4286 次
发布时间:2019-05-27

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

    

题意:第一行给出了 233 2333 23333 233333 ...... 

也给出了第一列的数 ,让你计算 第n行m列的值       a[i][j] = a[i-1][j] + a[i][j-1] ;

题解:我们要先预处理行,然后对列进行快速幂,这样就可以很快计算出结果;

/**     本题是一个n * m的矩阵(m比较大)               a[0][1] = 233  2333    a[1][0]    a[1][1]    a[2][0]    a[2][1]    a[3][0]    a[3][1]    a[4][0]    a[4][1]    .    .    .    .                                           { 10 0 0 0 1 }    .                                           { 1  1 0 0 0 }    {2333,a[1][1],a[2][1],a[3][1],.....,3} =    { 1  1 1 0 0 }*({233,a[1][0],a[2][0],a[3][0],.....,3} 的转置矩阵)                                                { 1  1 1 1 0 }                                                { 0  0 0 0 1 }**/#include
#include
#include
#include
using namespace std;#define mod 10000007typedef __int64 LL;LL a[20];int n,m;struct Z{ LL m[13][13];}ret,p;void init(){ memset(ret.m,0,sizeof(ret.m)); memset(p.m,0,sizeof(p.m)); for(int i = 0;i <= n+1;i++) ret.m[i][i] = 1; p.m[0][0] = 10;p.m[0][n+1] = 1; for(int i = 1;i <= n;i++) for(int j = 0;j <= i;j++) p.m[i][j] = 1; p.m[n+1][n+1] = 1;}Z operator * (Z a,Z b){ Z c; memset(c.m,0,sizeof(c.m)); for(int i = 0;i <= n + 1;i++) for(int k = 0;k <= n + 1;k++) if(a.m[i][k]) for(int j = 0;j <= n + 1;j++) c.m[i][j] = (c.m[i][j] + a.m[i][k] * b.m[k][j]) % mod; return c;}Z Pow(int k){ init(); while(k){ if(k&1) ret = ret * p; p = p * p; k >>= 1; } return ret;}int main(){ while(cin >> n >> m) { Z r; memset(a,0,sizeof(a)); a[0] = 233; for(int i = 1;i <= n;i++) cin >> a[i]; a[n+1] = 3; r = Pow(m); LL ans = 0; for(int i = 0;i <= n+1;i++) ans = (ans + r.m[n][i] * a[i] )% mod; cout << ans << endl; }}

转载地址:http://edsgi.baihongyu.com/

你可能感兴趣的文章
C#编码规范整理
查看>>
C#Nullable<T>可空的值类型,C#中的?使用整理
查看>>
EntityFramework中JSON序列化循环引用----JavaScriptSerializer
查看>>
EntiryFramework中事务操作实例
查看>>
删除github上的远程分支
查看>>
Visual Studio Code 1.8 发布
查看>>
SQL Server Management Studio 2016 (SSMS)
查看>>
EF中Sum()异常:到值类型“System.Decimal”的强制转换失败,因为具体化值为 null。
查看>>
Visual Studio Code插件之Atom One Dark Syntax Theme
查看>>
EntiryFramework中事务操作(二)TransactionScope
查看>>
EF获取非跟踪数据之DBSet.AsNoTracking()
查看>>
关于EF6.0整理
查看>>
C# using 关键字使用整理
查看>>
EF日期格式筛选_EF常用日期筛选逻辑整理
查看>>
EF日期筛选异常:SqlServer.DATEDIFF”函数的 DATEPART 参数必须是文字字符串。
查看>>
C# 托管资源 与 非托管资源
查看>>
C#析构函数
查看>>
C#IDisposable 接口&资源释放
查看>>
cssnext简介
查看>>
PostCss简介
查看>>