LJX的校园:入学典礼(C++)

LJX的校园:入学典礼
难度级别:C; 运行时间限制:45ms; 运行空间限制:256000KB; 代码长度限制:2000000B

试题描述

LJX上小学啦!他与YSM,YSF,WHT,LTJ等人都是校友。今天,是他人生中“溺亡”的一天。今天,他要向同学们证明他的数学很“乐呵”。于是,刚学会简单的A+B问题的他,在课上,向冤家对头 斯沃琪 挑战 QAQ,斯沃琪 队有YZM,SJY,ZZQ等人。而LJX队有他的好朋(ji)友:YSM,YSF,WHT,LTJ,LZH等人,实力不弱小觑。有这么一道题:

给定正整数N,M,要求计算1,2,……,N连接起来(1234567891011……N)mod M的值。

“新兵”LJX想了想,要是M是3,或者9,他一定会。但是M什么都可以,只要小于INF。“预约”了各种方法以后,费劲脑筋想不出来。于是,右转向了(呵呵)他的(ZHU)队友们。可他们已经跑了 TAT。jue ruo LJX找到了你,他跪求你编一个程序帮他解决问题。否则,他将在毕业典礼上“锻炼”,并且被可怕的斯沃琪虐残 QAQ


输入

* 一行:正整数N,M。

输出

* 一行:按要求输出

输入示例

输入样例1
13 13
输入样例2
12345678910 1000000000

输出示例

输出样例1
4
输出样例2
345678910

其他说明

N<=10^18
M<=10^9
这数据是在坑LJX呀

用今天学的矩阵快速幂
哦,不,是分段矩阵快速幂

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>

#define MAXN 4

using namespace std;

typedef long long int LL;

int mod;

struct matrix
{
LL p[MAXN][MAXN];
}ans,tmp;

matrix operator*(matrix a,matrix b)
{
matrix c;
for(int i=1;i<=3;i++)
for(int j=1;j<=3;j++)
{
c.p[i][j]=0;
for(int k=1;k<=3;k++)
c.p[i][j]=(c.p[i][j]+((a.p[i][k]%mod)*(b.p[k][j]%mod))%mod)%mod;
}
return c;
}

void cal(LL t,LL last)
{
memset(tmp.p,0,sizeof(tmp.p));
tmp.p[1][1]=t;
tmp.p[2][1]=tmp.p[3][1]=tmp.p[2][2]=tmp.p[3][2]=tmp.p[3][3]=1;
LL y=last-t/10+1;
while(y)
{
if(y&1) ans=ans*tmp;
tmp=tmp*tmp;
y>>=1;
}
}

int main()
{
for(int i=1;i<=3;i++)
ans.p[i][i]=1;
LL n;
scanf("%lld%lld",&n,&mod);
LL t=10;
while(n>=t)
{
cal(t,t-1);
t*=10;
}
cal(t,n);
printf("%lld\n",ans.p[3][1]);
return 0;
}

时间: 2024-10-24 11:01:42

LJX的校园:入学典礼(C++)的相关文章

首师大附中互测题:LJX的校园:入学典礼【C003】

[C003]LJX的校园:入学典礼[难度C]—————————————————————————————————————————————————————————————————————————————————————— [题目要求] LJX上中学啦!他与YSM,YSF,WHT,LTJ等人都是校友.今天,是他人生中“溺亡”的一天.今天,他要向同学们证明他的数学很“乐呵”. 于是,刚学会简单的A+B问题的他,在课上,向冤  家对头 斯沃琪 挑战 QAQ,斯沃琪 队有YZM,SJY,ZZQ等人.而LJX

首师大附中科创教育平台 我的刷题记录 3120 LJX的校园:入学典礼

今天给大家献上"C"级题:LJX的校园:入学典礼!! 试题编号:3120       LJX的校园:入学典礼 难度级别:C: 运行时间限制:45ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述 LJX上小学啦!他与YSM,YSF,WHT,LTJ等人都是校友.今天,是他人生中"溺亡"的一天.今天,他要向同学们证明他的数学很"乐呵".于是,刚学会简单的A+B问题的他,在课上,向冤家对头 斯沃琪 挑战 QAQ,斯沃琪

LJX的校园:社会实践的任务

#include<iostream> using namespace std; long long a[1000],b[1000]; int main() { int n,m,i,j,sum=0; bool c=0; cin>>n>>m; for(i=0;i<n;i++) cin>>a[i]; //输入 for(i=0;i<m;i++) cin>>b[i]; //输入 for(j=0;j<m;j++) { for(i=0;i&l

论诚信

<论语>中说:“人而无信,不知其可也?”意思是:如果一个人没有信誉,不知道他怎么在社会上行得通?可见,诚信是做人之根本,立业之基. 诚信,简单的说:就是说到做到,遵守自己的诺言:深层次的说就是有自己的道德准线,不欺骗自己,也不欺骗他人.在人际交往中,诚信是沟通心灵的桥梁,善于欺骗的人,永远到不了桥的另一端,诚信是赢得信任和帮助的通行证:在人生路上,诚信是路途中的第一准则,是赢得朋友,获得支持,得到快乐的基本前提,是你走遍天下的鞋子. 从古至今,有数不清的人都是诚信的坚守者和力行者,他们的故事成

“校园交易平台”的典型用户和用户场景介绍

1.典型用户 名字 小琪 性别.年龄 男,23岁 院系.年级 信息学院计算机专业大三学生 收入 基本无 知识层次和能力 本科在读,游戏高手,可以灵活使用电脑 动机.目的.困难 处理手上的二手货,淘购自己需要的东西,但无奈现有大型网站需要负担费用还极不方便,自己学校又没有自己的二手物品网站 生活情况  主要的日常活动就是学习,在课闲时间活动极其单一,就是打打游戏 用户偏好  上网冲浪,打游戏 用户比例  ? 名字 兆贾 性别.年龄 男,46岁 职业 教师 院系 机械学院 收入 ~~~ 知识层次和能

20150910信院研究生新生入学教育

###时间  20150910中午13:30  ###地点  信院北楼光学大厅 ###主题  信院研究生新生入学教育   ###内容+ 师资  39名教授,42名副教授.原来我院的教授这么少,但还好,当时听了一些过来人的话,选了咱导师(也是个教授),用咱实验室的话来说,选咱导的性价比比较高.+ 学生  我也没记硕士多少名,博士多少名了.  + 奖助      + 绿色通道      我们15级就有43个是生源地或者校园地助学贷款的.我们实验室连我就有3个申请了助学贷款,咱导也就招了6个硕士,1个

校园导航 NABC分析

校园导航是基于铁大校园的导航系统,能帮助刚入学的新生寻路,迅速适应校园. N:大一新生需要有个导航能为他们正确寻找道路,现在已有的地图太大,比如百度地图,谷歌地图,不够精确,希望有一款导航在校园里寻路: A:我们能迅速找出校园两个地点之间的最优路径,并显示在地图上,还能显示出距离:我们用C#做软件界面,数据库存放地点信息,通过关键字查找找出地点信息: B:这个软件的好处就是能清楚的显示出需要找的地点怎么走,更加精确,比百度地图等要精确,能让一点也不了解铁大的人在铁大畅行无阻: C:竞争者很多,有

苹果公司CEO乔布斯在斯坦福大学毕业典礼上的演讲

苹果公司CEO乔布斯在斯坦福大学毕业典礼上的演讲 摘要:这是苹果公司CEO乔布斯2005年在斯坦福大学毕业典礼上的演讲,大学途中退学,创业,被解雇,东山再起,死亡威胁,这些他都一一经历了.经营自己与众不同的人生要从了解别人的经历开始.以下是英文原版以及翻译的版本:Tag: 英语 演讲 This is the text of the Commencement address by Steve Jobs, CEO of Apple Computer and of Pixar Animation St

【乔布斯05年斯坦福大学毕业典礼上的演讲】——Stay Hungry, Stay Foolish.(转)

Steve Jobs: Commencement Address at Stanford University "Stay Hungry, Stay Foolish." 求知若饥,虚心若愚 史蒂夫·乔布斯(Steve Paul Jobs)苹果电脑公司和皮克斯动画公司(Pixar)首席执行官. 以下是Steve Jobs在2005年6月12日斯坦福大学毕业典礼上的演讲. Thank you.I'm honored to be with you today for your commenc