4002: [JLOI2015]有意义的字符串

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 963  Solved: 416
[Submit][Status][Discuss]

Description

B 君有两个好朋友,他们叫宁宁和冉冉。有一天,冉冉遇到了一个有趣的题目:输入 b;d;n,求

Input

一行三个整数 b;d;n

Output

一行一个数表示模 7528443412579576937 之后的结果。

Sample Input

1 5 9

Sample Output

76

HINT

其中 0<b^2< = d<(b+1)2< = 10^18,n< = 10^18,并且 b mod 2=1,d mod 4=1

题目链接:

    http://www.lydsy.com/JudgeOnline/problem.php?id=4002

Solution

    题解PoPoQQQ 。。。膜拜orz。。。。

    思路太神了!!特征方程什么的蒟蒻表示完全不会!!

    注意:取模的时候注意要用快速乘。。。。

代码

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<iostream>
#define LL long long
#define ULL unsigned long long
#define mod 7528443412579576937
using namespace std;
ULL qui(ULL a,ULL b){ULL s=0;while(b){if(b&1)s=(s+a)%mod;b>>=1;a=(a+a)%mod;}return s;
}
struct jz{ULL x[2][2];friend jz operator *(const jz &a,const jz &b){jz tmp;for(int i=0;i<2;i++)for(int j=0;j<2;j++){tmp.x[i][j]=0;for(int k=0;k<2;k++)tmp.x[i][j]=(tmp.x[i][j]+qui(a.x[i][k],b.x[k][j]))%mod;}return tmp;}
}A,T;
void pow(ULL z){while(z){if(z&1)T=T*A;z>>=1;A=A*A;}
}
int main(){ULL b,d,n,b2,f=0;cin>>b>>d>>n;if(n==0){printf("1\n");return 0;}b2=qui(b,b);A.x[0][0]=b;A.x[0][1]=1;A.x[1][0]=((d-b2)/4)%mod;A.x[1][1]=0;T.x[0][0]=b;T.x[0][1]=2;T.x[1][0]=0;T.x[1][1]=0;pow(n-1);if(d!=b2&&n%2==0) f=1;T.x[0][0]=(T.x[0][0]-f+mod)%mod;cout<<T.x[0][0]<<endl;return 0;
}

  

  

This passage is made by Iscream-2001.

转载于:https://www.cnblogs.com/Yuigahama/p/7800487.html

BZOJ 4002--有意义的字符串(矩阵乘法)相关推荐

  1. BZOJ 3329 Xorequ (数位DP、矩阵乘法)

    BZOJ 3329 Xorequ (数位DP.矩阵乘法) 手动博客搬家: 本文发表于20181105 23:18:54, 原地址https://blog.csdn.net/suncongbo/arti ...

  2. BZOJ 1009 GT考试 (AC自动机 + 矩阵乘法加速dp)

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1009 题意: 准考证号为\(n\)位数\(X_1X_2....X_n(0<=X_ ...

  3. BZOJ 4386 Luogu P3597 [POI2015]Wycieczki (矩阵乘法)

    题目链接: (bzoj) https://www.lydsy.com/JudgeOnline/problem.php?id=4386 (luogu) https://www.luogu.org/pro ...

  4. BZOJ 1875 [SDOI2009]HH去散步 矩阵乘法

    题意: 给定一张无向图,每条路的长度都是1,没有自环,可能有重边,给定起点与终点,求从起点走t步到达终点的方案数. 每一步走的时候要求不能走上一条刚刚走的路. 解析: 显然需要搞出个矩阵之后矩乘. 然 ...

  5. bzoj 4002: [JLOI2015]有意义的字符串(特征根法+矩阵快速幂)

    4002: [JLOI2015]有意义的字符串 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 960  Solved: 415 [Submit][S ...

  6. BZOJ 4180: 字符串计数 后缀自动机 + 矩阵乘法 + 二分(神题)

    Description SD有一名神犇叫做Oxer,他觉得字符串的题目都太水了,于是便出了一道题来虐蒟蒻yts1999. 他给出了一个字符串T,字符串T中有且仅有4种字符 'A', 'B', 'C', ...

  7. [BZOJ]4180: 字符串计数 SAM+矩阵乘法+二分

    Description SD有一名神犇叫做Oxer,他觉得字符串的题目都太水了,于是便出了一道题来虐蒟蒻yts1999. 他给出了一个字符串T,字符串T中有且仅有4种字符 'A', 'B', 'C', ...

  8. 字符串加括号问题(矩阵乘法组合问题)C++

    矩阵乘法加括号问题 给定一个长度的字符串,很明显是可以加括号(矩阵乘法的结合律) 所以,一共有多少种加括号的方式呢? 给出了计算总共有多少这样组合 例如: 下面这个串,输入的长度为4. ABCD 所有 ...

  9. 矩阵乘法 算法训练 试题_线性代数入门——矩阵乘法的定义及其意义

    系列简介:这个系列文章讲解线性代数的基础内容,注重学习方法的培养.线性代数课程的一个重要特点(也是难点)是概念众多,而且各概念间有着千丝万缕的联系,对于初学者不易理解的问题我们会不惜笔墨加以解释.在内 ...

最新文章

  1. linux c 多线程socket编程,Linux多线程socket编程一些心得
  2. Windows Server 笔记之磁盘管理
  3. python 解释器下载_PyPy Python
  4. 当自己颓废的时候怎么激励自己?深度好文!!!
  5. 最好用AI抠图的软件,方便你,我,他。
  6. 用友T6打开UFO报表提示登录失败
  7. 蔡学镛:写SOP(标准作业程序)就是写程序
  8. Cell:PopCOGenT鉴定微生物基因组间的基因流动
  9. 虚拟服务器密码遗忘怎么办,win7虚拟机忘记密码怎么办_win7虚拟机忘记密码的解决方法...
  10. 掌握算法本质背后的计算思维,尽在吴军博士《计算之魂》这本书中
  11. M1卡破解(自从学校升级系统之后,还准备在研究下)
  12. 有电脑病毒就会有杀毒软件!李开复和MIT彭特兰这样看AI挑战
  13. 如何看待腾讯云电子签呢?
  14. 高德地图不显示定位点
  15. win7 32位安装oracle10g步骤
  16. 2019-10 前端技术汇总
  17. Kubernetes HPA 动态弹性扩缩容
  18. 【SwiftUI模块】0007、SwiftUI新手指引-新手指示-聚光灯介绍说明
  19. 物联网通信技术原理第5章 移动通信技术
  20. 开blog记录,咩哈哈

热门文章

  1. PHP页面编码声明与用header或meta实现PHP页面编码的区别
  2. Android SqliteManager 源码
  3. TCP/IP 5.3.5 认证
  4. 存储新技术之“连续数据保护(CDP)”
  5. JavaScript 渐变效果
  6. Spark数据倾斜-采样倾斜key并分拆join操作-详细图解与代码
  7. intellij2018使用2019的主题
  8. yelee主题安装gitalk(转载+整理)
  9. C++ 大话数据结构 09: 中缀表达式 转后缀表达式 计算器
  10. 机器学习(三十五)——Actor-Critic, Integrating Learning and Planning(1)