BZOJ 2326 数学作业(矩阵)】的更多相关文章

题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2326 题意:定义Concatenate(1,N)=1234567……n.比如Concatenate(1,10)=12345678910.给定n和m,求Concatenate(1,n)%m. 思路:令f[n]表示Concatenate(1,n).那么有: f[i]=f[i-1]*10+(i-1)+1   1<=i<=9 f[i]=f[i-1]*100+(i-1)+1  10<=i…
实际上,对于位数相同的连续段,可以用矩阵快速幂求出最后的ans,那么题目中一共只有18个连续段. 分段矩阵快速幂即可. #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #include<queue> #include<cmath> #define ll long long using na…
CJOJ 1331 [HNOI2011]数学作业 / Luogu 3216 [HNOI2011]数学作业 / HYSBZ 2326 数学作业(递推,矩阵) Description 小 C 数学成绩优异,于是老师给小 C 留了一道非常难的数学作业题: 给定正整数 N 和 M,要求计算 Concatenate (1 .. N) Mod M 的值,其中 Concatenate (1 ..N)是将所有正整数 1, 2, -, N 顺序连接起来得到的数.例如,N = 13, Concatenate (1…
BZOJ先剧透了是矩阵乘法...这道题显然可以f(x) = f(x-1)*10t+x ,其中t表示x有多少位. 这个递推式可以变成这样的矩阵...(不会用公式编辑器...), 我们把位数相同的一起处理, 那么10^t就可以确定,加上快速幂就行了 ------------------------------------------------------------------------------------ #include<cstdio> #include<cstring>…
2326: [HNOI2011]数学作业 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 1564 Solved: 910 [Submit][Status][Discuss] Description Input Output Sample Input Sample Output HINT Source 题解: 矩乘快速幂,构造矩阵: 其中k为位数,所以分段进行快速幂: 1~9:10~99:100~999:-. 开始4A6W,然后加了快速乘AC了,但…
[HNOI2011]数学作业 题目描述: 小 C 数学成绩优异,于是老师给小 C 留了一道非常难的数学作业题: 给定正整数 N 和 M ,要求计算\(Concatenate(1..N)\; Mod\;  M\) 的值, 其中 \(Concatenate(1..N)\)  是将所有正整数 1, 2, …, N顺序连接起来得到的数. 例如,N = 13;  \(Concatenate( 1..13) = 12345678910111213\) 小C 想了大半天终于意识到这是一道不可能手算出来的题目…
题目传送门 数学作业 题目描述 小 C 数学成绩优异,于是老师给小 C 留了一道非常难的数学作业题: 给定正整数 N和 M,要求计算 Concatenate (1 .. N)Mod M 的值,其中 Concatenate(1..N) 是将所有正整数1,2,…,N 顺序连接起来得到的数.例如,N=13 , Concatenate (1 .. N)=12345678910111213 .小C 想了大半天终于意识到这是一道不可能手算出来的题目,于是他只好向你求助,希望你能编写一个程序帮他解决这个问题.…
数学作业 Time Limit: 10 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description Input 输入文件只有一行为用空格隔开的两个正整数N和M. Output 输出仅包含一个非负整数,表示Concatenate(1~N) MOD M的值. Sample Input 12345678910 1000000000 Sample Output 345678910 HINT 1<=N<=10^8 , 1<=M<…
题目描述 小 C 数学成绩优异,于是老师给小 C 留了一道非常难的数学作业题: 给定正整数 NNN 和 MMM ,要求计算Concatenate(1..N) Concatenate (1 .. N) Concatenate(1..N) ModModMod MMM 的值,其中 Concatenate(1..N) Concatenate (1 .. N) Concatenate(1..N) 是将所有正整数 1,2,…,N1, 2, …, N1,2,…,N 顺序连接起来得到的数.例如,N=13N =…
传送门 解题思路 NOIp前看到的一道题,当时想了很久没想出来,NOIp后拿出来看竟然想出来了.注意到有递推\(f[i]=f[i-1]*poww[i]+i\),\(f[i]\)表示\(1-i\)连接起来组成的数字,\(poww[i]\)表示\(10\)的\(i\)的位数次幂,发现这个可以用矩阵快速幂优化,\([f[i],i+1,1]\),转移到\([f[i+1],i+2,1]\),要做\(n\)的位数次快速幂,每次修改一下转移矩阵中\(poww\)的值就行了. 代码 #include<iostr…