博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVa10870 - Recurrences(矩阵)
阅读量:5024 次
发布时间:2019-06-12

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

分析:

矩阵快速幂求递推式
练模板

//这里写代码片#include
#include
#include
#define ll long longusing namespace std;ll n,p,f[20],a[20];int d;struct node{ ll H[20][20]; node operator *(const node &a) const { node ans; for (int i=1;i<=d;i++) for (int j=1;j<=d;j++) { ans.H[i][j]=0; for (int k=1;k<=d;k++) ans.H[i][j]=(ans.H[i][j]+H[i][k]*a.H[k][j]%p)%p; } return ans; } void clear() { memset(H,0,sizeof(H)); } node KSM(ll b) { node ans=(*this),a=(*this); b--; while (b) { if (b&1) ans=ans*a; b>>=1; a=a*a; } return ans; }};node ans,H;int main(){ scanf("%d%lld%lld",&d,&n,&p); while (d&&n&&p) { H.clear(); for (int i=1;i<=d;i++) scanf("%lld",&a[i]), H.H[i][1]=a[i]%p; for (int i=1;i<=d;i++) scanf("%lld",&f[i]); if (n<=d) { printf("%lld\n",f[n]%p); scanf("%d%lld%lld",&d,&n,&p); continue; } for (int i=1;i

转载于:https://www.cnblogs.com/wutongtong3117/p/7673034.html

你可能感兴趣的文章
Leetcode总结之Backtracking
查看>>
Android开发学习之路-图片颜色获取器开发(1)
查看>>
StackExchange.Redis 官方文档(一) Basics
查看>>
nupkg 之破解 nodejs+electron-packager 打包exe的解包
查看>>
Objective-C 使用 C++类
查看>>
浅谈之高级查询over(partition by)
查看>>
Notes: CRM Analytics–BI from a CRM perspective (2)
查看>>
graphite custom functions
查看>>
列出所有的属性键
查看>>
js获取请求地址后面带的参数
查看>>
[原创]使用java批量修改文件编码(ANSI-->UTF-8)
查看>>
设计模式のCompositePattern(组合模式)----结构模式
查看>>
二进制集合枚举子集
查看>>
磁盘管理
查看>>
SAS学习经验总结分享:篇二—input语句
查看>>
UIImage与UIColor互转
查看>>
RotateAnimation详解
查看>>
系统管理玩玩Windows Azure
查看>>
c#匿名方法
查看>>
如何判断链表是否有环
查看>>