news 2026/4/15 21:33:36

《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/4/16 14:06:31

强烈安利8个AI论文网站,继续教育学生搞定论文必备!

强烈安利8个AI论文网站&#xff0c;继续教育学生搞定论文必备&#xff01; AI 工具让论文写作不再难 在当今这个信息爆炸的时代&#xff0c;继续教育学生面临着越来越高的学术要求。无论是撰写毕业论文还是完成研究项目&#xff0c;都需要大量的时间和精力。而随着 AI 技术的不…

作者头像 李华
网站建设 2026/4/15 12:36:36

基于STM32的智慧衣橱环境监测与管理系统设计

目录 系统概述硬件设计软件设计关键技术应用场景 源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 系统概述 智慧衣橱环境监测与管理系统基于STM32微控制器设计&#xff0c;旨在实时监测衣橱内的温湿度、光照、空气质量等环境参数&…

作者头像 李华
网站建设 2026/4/12 2:10:26

基于Android和蓝牙的智慧停车场系统的设计与实现

目录 系统概述核心技术组成关键实现步骤应用场景与扩展参考案例 源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 系统概述 基于Android和蓝牙的智慧停车场系统旨在通过移动应用与蓝牙技术实现停车位的智能管理、导航和支付功能。该系统…

作者头像 李华
网站建设 2026/4/16 12:21:58

基于MQTT协议的物联网家庭安防系统设计

目录 MQTT协议概述系统架构设计关键技术实现安全增强措施典型应用场景性能优化建议 源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; MQTT协议概述 MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种轻量级的发布…

作者头像 李华
网站建设 2026/4/16 10:45:34

吐血推荐!专科生必备8款AI论文工具测评

吐血推荐&#xff01;专科生必备8款AI论文工具测评 2026年专科生论文写作工具测评&#xff1a;为何值得一看&#xff1f; 随着AI技术的不断进步&#xff0c;越来越多的学术工具开始进入高校师生的视野&#xff0c;尤其是对于专科生而言&#xff0c;论文写作不仅是学业的重要环…

作者头像 李华