news 2026/5/11 14:13:05

《P3216 [HNOI2011] 数学作业》

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
《P3216 [HNOI2011] 数学作业》

题目描述

小 C 数学成绩优异,于是老师给小 C 留了一道非常难的数学作业题:

给定正整数 n,m,要求计算 Concatenate(n)mod m 的值,其中 Concatenate(n) 是将 1∼n 所有正整数 顺序连接起来得到的数。

例如,n=13,Concatenate(n)=12345678910111213。小 C 想了大半天终于意识到这是一道不可能手算出来的题目,于是他只好向你求助,希望你能编写一个程序帮他解决这个问题。

输入格式

一行两个正整数 n,m。

输出格式

输出一行一个整数表示答案。

输入输出样例

输入 #1复制

13 13

输出 #1复制

4

说明/提示

【数据范围】

对于 30% 的数据,1≤n≤106;
对于 100% 的数据,1≤n≤1018,1≤m≤109。

  • 2023.4.20 添加一组 hack 数据。

代码实现:

#include<iostream> #include<cstring> using namespace std; unsigned long long n, mod, pow10[20]; struct mat { int m[105][105] = {}; mat() {memset(m,0,sizeof(m));} mat operator * (const mat b) { mat res; for(int i = 1;i <= 3;i++) for(int j = 1;j <= 3;j++) for(int k = 1;k <= 3;k++) { res.m[i][j] += 1ll * m[i][k] * b.m[k][j] % mod; res.m[i][j] %= mod; } return res; } void output() { for(int i = 1;i <= 3;i++) { for(int j = 1;j <= 3;j++) printf("%lld ",m[i][j]); printf("\n"); } } }; mat qpow(mat x, long long b) { mat res; for(int i = 1;i <= 3;i++) res.m[i][i] = 1; while(b) { if(b&1) res = res * x; x = x * x; b >>= 1; } return res; } int cnt_dig(long long x) { int cnt = 0; while(x) { cnt++; x /= 10; } return cnt; } int main() { pow10[0] = 1; for(int i = 1;i < 20;i++) pow10[i] = pow10[i-1] * 10ll; scanf("%lld%lld",&n,&mod); mat trans, res; for(int i = 1;i <= 3;i++) res.m[i][i] = 1; for(int i = 1;i <= cnt_dig(n);i++) { trans.m[1][2] = trans.m[2][2] = trans.m[2][3] = trans.m[3][3] = 1; trans.m[1][1] = pow10[i] % mod; if(i == 1) res = res * qpow(trans, min(n-pow10[i-1], pow10[i]-pow10[i-1]-1)); else res = qpow(trans, min(n-pow10[i-1]+1, pow10[i]-pow10[i-1])) * res; } printf("%lld",(res.m[1][1] + 2ll * res.m[1][2] + res.m[1][3]) % mod); return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/10 2:03:51

无监督配准

基于你提供的搜索结果&#xff0c;我为你整理了关于深度学习在有监督配准与无监督配准方面的对比分析。这涵盖了定义、特点、方法及效果的详细对比。 核心定义与区别 在深度学习应用于图像配准&#xff08;尤其是医学图像&#xff09;的领域中&#xff0c;有监督学习和无监督…

作者头像 李华
网站建设 2026/5/11 7:32:37

python基础语法 3

一.顺序语句在默认情况下&#xff0c;Python语句执行顺序是从上到下依次执行。比如&#xff1a;print(1) print(2) print(3)打印结果为1 2 3二.条件语句1.常见三种&#xff08;1&#xff09;ifif expression:do_something1do_something2next_something如果expression为真&am…

作者头像 李华
网站建设 2026/5/9 19:47:34

2026必备!专科生毕业论文必看!TOP9 AI论文网站测评

2026必备&#xff01;专科生毕业论文必看&#xff01;TOP9 AI论文网站测评 2026年专科生论文写作新选择&#xff1a;AI工具测评全解析 随着人工智能技术的不断进步&#xff0c;越来越多的专科生开始借助AI工具辅助毕业论文写作。然而&#xff0c;面对市场上五花八门的AI论文网站…

作者头像 李华
网站建设 2026/5/10 15:04:55

深度测评9个一键生成论文工具,本科生论文写作必备!

深度测评9个一键生成论文工具&#xff0c;本科生论文写作必备&#xff01; AI 工具助力论文写作&#xff0c;高效与精准并存 随着人工智能技术的不断进步&#xff0c;越来越多的 AI 工具被应用于学术写作中&#xff0c;尤其是在本科生论文写作过程中&#xff0c;这些工具不仅…

作者头像 李华
网站建设 2026/5/10 13:23:59

大模型部署难题破解:并行计算架构详解与实战

本文解析了大模型部署中的并行计算架构&#xff0c;包括模型并行&#xff08;按层或张量拆分&#xff09;、流水线并行和数据并行&#xff0c;以及三者结合的混合并行策略。这些技术解决了大模型显存不足和计算效率问题&#xff0c;使AI产品经理能从"只会用模型"上升…

作者头像 李华
网站建设 2026/5/9 23:52:44

FPGA FFT缩放因子配置全解析

目录 前言 1.快速傅里叶变换&#xff08;FFT&#xff09; 1.1 FFT的来源 1.2 FFT IP 缩放因子设置实例 缩放配置的底层含义&#xff1a;16haaaa 每一级的计算与“减肥”过程 输入准备&#xff1a;24 位原始数据 Stage 1&#xff1a;第一次蝶形运算 Stage 2&#x…

作者头像 李华