题解:

  矩阵裸体。

  

 #include<cstdio>
#include<cstring>
#include<cmath>
typedef long long ll;
ll n,mod;
struct Matrix{
ll a[][];
Matrix (){
memset(a,,sizeof(a));
}
inline void e(){
for(int i=;i<=;i++)
a[i][i]=;
}
friend Matrix operator *(Matrix x,Matrix y){
Matrix c;
for(int k=;k<=;k++)
for(int i=;i<=;i++)
for(int j=;j<=;j++){
c.a[i][j]+=x.a[i][k]*y.a[k][j];
if(c.a[i][j]>mod)
c.a[i][j]%=mod;
}
return c;
}
friend Matrix operator ^(Matrix a,ll b){
Matrix ans;ans.e();
while(b){
if(b&) ans=ans*a;
b>>=;
a=a*a;
}return ans;
}
inline void kmod(ll k){
for(int i=;i<=;i++)
for(int j=i;j<=;j++)
a[i][j]=;
a[][]=k%mod;
}
};
int main(){
scanf("%lld%lld",&n,&mod);
Matrix ans;
ans.a[][]=;
ans.a[][]=;
ans.a[][]=;
int i;ll j;
for(i=,j=;j*<=n;j*=,i++){
Matrix b;b.kmod(j*);
ans=(b^(j*-j))*ans;
}//printf("%lld\n",ans.a[1][1]);
Matrix b;b.kmod(j*);
if(n-j+>)
ans=(b^(n-j+))*ans;
printf("%lld\n",ans.a[][]);
}

【bzoj 2326】【HNOI 2011】数学作业的更多相关文章

  1. [HNOI 2011]数学作业

    Description 小 C 数学成绩优异,于是老师给小 C 留了一道非常难的数学作业题: 给定正整数 N 和 M,要求计算 Concatenate (1 .. N) Mod M 的值,其中 Con ...

  2. BZOJ 2326: [HNOI2011]数学作业( 矩阵快速幂 )

    BZOJ先剧透了是矩阵乘法...这道题显然可以f(x) = f(x-1)*10t+x ,其中t表示x有多少位. 这个递推式可以变成这样的矩阵...(不会用公式编辑器...), 我们把位数相同的一起处理 ...

  3. [BZOJ 2326] [HNOI2011] 数学作业 【矩阵乘法】

    题目链接:BZOJ - 2326 题目分析 数据范围达到了 10^18 ,显然需要矩阵乘法了! 可以发现,向数字尾部添加一个数字 x 的过程就是 Num = Num * 10^k + x .其中 k ...

  4. CJOJ 1331 【HNOI2011】数学作业 / Luogu 3216 【HNOI2011】数学作业 / HYSBZ 2326 数学作业(递推,矩阵)

    CJOJ 1331 [HNOI2011]数学作业 / Luogu 3216 [HNOI2011]数学作业 / HYSBZ 2326 数学作业(递推,矩阵) Description 小 C 数学成绩优异 ...

  5. BZOJ 2742: [HEOI2012]Akai的数学作业

    2742: [HEOI2012]Akai的数学作业 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 535  Solved: 226[Submit][S ...

  6. BZOJ-2326 数学作业 矩阵乘法快速幂+快速乘

    2326: [HNOI2011]数学作业 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 1564 Solved: 910 [Submit][Statu ...

  7. bzoj2326: [HNOI2011]数学作业

    矩阵快速幂,分1-9,10-99...看黄学长的代码理解...然而他直接把答案保存在最后一行(没有说明...好吧应该是我智障这都不知道... #include<cstdio> #inclu ...

  8. codevs 2314 数学作业

    2314 数学作业 2011年省队选拔赛湖南  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 大师 Master     题目描述 Description 小 C 数学成绩优异 ...

  9. [luogu P3216] [HNOI2011]数学作业

    [luogu P3216] [HNOI2011]数学作业 题目描述 小 C 数学成绩优异,于是老师给小 C 留了一道非常难的数学作业题: 给定正整数 N 和 M,要求计算 Concatenate (1 ...

  10. [BZOJ 2299][HAOI 2011]向量 题解(裴蜀定理)

    [BZOJ 2299][HAOI 2011]向量 Description 给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), ...

随机推荐

  1. 白瑜庆:知乎基于Kubernetes的kafka平台的设计和实现

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文首发在云+社区,未经许可,不得转载. 自我介绍 我是知乎的技术中台工程师,现在是负责知乎的存储相关组件.我的分享主要基于三个,一个是简单 ...

  2. 赋给个人账户sudo的全部root执行权限

    sudo visudo 输入root账户密码后,会自动打开sudoers文件编辑 在root     ALL=(ALL)    ALL此行下增加一行 user ALL=(ALL)    NOPASSW ...

  3. Android Selector原理

    android的selector对于android开发者而言再熟悉不过了,只要定义一个drawable目录下定义一个selector的xml文件,在布局文件中引用这个xml文件或者在代码中setBac ...

  4. hadoop_eclipse及HDT插件的使用

    Hadoop Development Tools (HDT)是开发hadoop应用的eclipse插件,http://hdt.incubator.apache.org/介绍了其特点,安装,使用等,针对 ...

  5. mysql cluster部署

    一.mysql cluster的基本概念 1.mysql cluster的组成            管理(MGM)节点:这类节点的作用是管理MySQL Cluster内的其他节点,如提供配置数据.启 ...

  6. Ocelot中文文档-Raft(实验功能不能用于生产环境)

    Ocelot最近整合了Rafty,这是我在去年一直研究的Raft的一个实现. 这个项目实验性非常强,所以在我认为它没问题之前,请不要在生产环境中使用Ocelot的这个功能. Raft是一种分布式一致性 ...

  7. PHP内核之旅-2.SAPI中的Cli

    PHP 内核之旅系列 PHP内核之旅-1.生命周期 PHP内核之旅-2.SAPI中的Cli 一.SAPI是什么? 1.1 理解SAPI (1)SAPI是PHP框架的接口层.有很多种服务器的SAPI的实 ...

  8. mysql-入门

    创建数据库 Create database 数据库名字 [库选项]; 创建数据库 create database mydatas charset utf8; 查看数据库 show databases; ...

  9. 学习CountDownLatch

    对比 使用CyclicBarrier 上次用Barrier方式实现了线程等待一组完成,这次用CountDownLatch来实现 我的理解CountDownLatch 采用的方式是计数器方式,每执行完一 ...

  10. hadoop HA 详解

    NameNode 高可用整体架构概述 在 Hadoop 1.0 时代,Hadoop 的两大核心组件 HDFS NameNode 和 JobTracker 都存在着单点问题,这其中以 NameNode ...