当前位置: 首页 > news >正文

【数列求值 / B】

题目

 

一般做法

#include <bits/stdc++.h>
using namespace std;
const int mod = 10000; 
int f[20190325] = {1, 1, 1, 1};
int main()
{for(int i = 4; i <= 20190324; i++){f[i] = (f[i-1] + f[i-2] + f[i-3]) % mod;}cout << f[20190324];
}

快速幂+矩阵乘法

#include <bits/stdc++.h>
using namespace std;
const int mod = 10000; 
void mul(int C[], int A[], int B[][3])
{int temp[3] = {0};for(int i = 0; i < 1; i++){for(int j = 0; j < 3; j++){for(int k = 0; k < 3; k++){temp[j] = (temp[j] + A[k] * B[k][j]) % mod;}}}memcpy(C, temp, sizeof temp);
}
void mul(int C[][3], int A[][3], int B[][3])
{int temp[3][3] = {0};for(int i = 0; i < 3; i++){for(int j = 0; j < 3; j++){for(int k = 0; k < 3; k++){temp[i][j] = (temp[i][j] + A[i][k] * B[k][j]) % mod;}}}memcpy(C, temp, sizeof temp);
}
void qmi(int A[], int B[][3], int i)
{while(i){if(i&1) mul(A,A,B);mul(B,B,B);i >>= 1;}
}
int main()
{int A[3] = {1, 1, 1};int B[3][3] = {{0,0,1},{1,0,1},{0,1,1}};qmi(A,B,20190321);cout << A[2] % mod;
}

#include <bits/stdc++.h>
using namespace std;
const int mod = 10000; 
void mul(int C[][3], int A[][3], int B[][3])
{int temp[3][3] = {0};for(int i = 0; i < 3; i++){for(int j = 0; j < 3; j++){for(int k = 0; k < 3; k++){temp[i][j] = (temp[i][j] + A[i][k] * B[k][j]) % mod;}}}memcpy(C, temp, sizeof temp);
}
void qmi(int A[][3], int B[][3], int i)
{while(i){if(i&1) mul(A,A,B);mul(B,B,B);i >>= 1;}
}
int main()
{int A[3][3] = {{1, 1, 1}};int B[3][3] = {{0,0,1},{1,0,1},{0,1,1}};qmi(A,B,20190321);cout << A[0][2] % mod;
}


http://www.mrgr.cn/news/34215.html

相关文章:

  • C语言的内存函数
  • 接口测试整体框架
  • 数据结构——排序(续集)
  • 【Hadoop实训】Hive 数据操作②
  • 生成式模型api国际选择
  • 【Git】Git Clone 指定自定义文件夹名称:详尽指南
  • 手把手教您轻松实现微信/QQ/TIM多开,消息防撤回!
  • 机械手末端快换技术:工业自动化的强大新动力
  • python:django项目知识点02——搭建简易授权码核销系统
  • 记录我的常用开发地址
  • 骨传导耳机推荐什么牌子好?盘点五款高性价比热门机型推荐!
  • Azure Pipeline 常用任务记录
  • Kubernetes之Kubectl命令行工具操作
  • 【C++】哈希桶
  • 第十一章 从0-1搭建一个简单的JavaWeb系统(三)
  • Python 列表操作:深入理解与高效实践
  • Science:这才是参加学术会议的正确打开方式!
  • 20 基于STM32的温度、电流、电压检测proteus仿真系统(OLED、DHT11、继电器、电机)
  • Web自动化测试
  • RS-232,422,485应用详解
  • 全方位洗衣洗鞋小程序系统,重塑干洗店服务新体验;
  • Java的cnum类型
  • 在Windows系统上安装的 Boost C++ 库
  • ???Ansible——Playbook基本功能
  • 基于flask常见trick——unicode进制编码绕过
  • 【Elasticsearch系列廿一】ES7 SQL 新特性