洛谷连接&Atcoder 链接

题目简述

给定两个数 \(n\) 和 \(m\),输出 \(\left\lfloor\frac{10^n}{m}\right\rfloor \bmod m\) 的值。

数据范围:\(n \le 10^{18},m \le 10^4\)

思路

首先看到数据范围还是很大的,直接快速幂会炸,所以需要一些优化操作。

推理如下:

\[\left\lfloor\frac{10^n}{m}\right\rfloor \bmod m \equiv \left\lfloor\frac{10^n}{m}\right\rfloor - k \times m \bmod m \equiv \left\lfloor\frac{10^n - k \times m^2}{m}\right\rfloor \bmod m \equiv \left\lfloor\frac{10^n \bmod m^2}{m}\right\rfloor \bmod m
\]

经过以上推理,可以发现,仅需用快速幂求 \(10^n \bmod m^2\) 的值即可,时间复杂度 \(O(\log n)\),可以通过。

其中快速幂的代码可以用循环实现(本人觉得比较好用)。

long long qpow(long long a, long long b, long long p) {
long long ans = 1;
while(b) {
if(b & 1) ans *= (a % p), ans %= p;
a = (a * a % p);
b /= 2;
}
return ans;
}

解决快速幂后,此题就非常简单了,代码如下:

#include<iostream>
using namespace std; long long n, m, ans = 0; long long qpow(long long a, long long b, long long p) {
ans = 1;
while(b) {
if(b & 1) ans *= (a % p), ans %= p;
a = (a * a % p);
b /= 2;
}
return ans;
} int main() {
cin >> n >> m;
cout << qpow(10, n, m * m) / m << endl;
return 0;
}

AC 记录

\[\texttt{The end!}
\]

AT_arc111_a 题解的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

  10. JSOI2016R3 瞎BB题解

    题意请看absi大爷的blog http://absi2011.is-programmer.com/posts/200920.html http://absi2011.is-programmer.co ...

随机推荐

  1. VMware Workstation安装Ubuntu窗口太小的解决方式

    1.选择菜单中的:虚拟机--------安装VMware-Tools 2.点击DVD图标 3.将压缩文件复制到桌面 4.解压压缩文件 5.进入解压后的目录,执行命令: sudo perl vmware ...

  2. Linux系统编程(十)线程池

    #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <pthread.h& ...

  3. 在Mac上运行Rainbond,10分钟快速安装

    前言 以往安装部署 Rainbond 的方式都无法绕过 Kubernetes 集群的搭建,无论是作为开发环境还是用于生产交付,部署的过程都非常依赖于服务器或云主机.这在体验 Rainbond 云原生应 ...

  4. Vue渲染函数与JSX指南

    title: Vue渲染函数与JSX指南 date: 2024/6/3 下午6:43:53 updated: 2024/6/3 下午6:43:53 categories: 前端开发 tags: Vue ...

  5. bash: _get_comp_words_by_ref: command not found 报错

    没有安装补全的包 错误信息 bash: _get_comp_words_by_ref: command not found 表明你的 shell 中可能存在补全功能的问题. 通常,这种错误发生在你的系 ...

  6. 修改linux默认启动界面——从命令行模式转换为图形化模式

    从命令行模式转换为图形化模式 首先需要安装对应的图形化安装包 yum groupinstall "GNOME Desktop" "Graphical Administra ...

  7. .net6 asp.net core mvc 中使用NLog ILogger

    1.用VS2022新建一个.NET6 MVC项目. 2.使用nuget引用NLog.Extensions.Logging. 3.项目中新建一个NLog.config配置文件,右键属性设置为" ...

  8. LLM应用实战:当图谱问答(KBQA)集成大模型(三)

    1. 背景 最近比较忙(也有点茫),本qiang~想切入多模态大模型领域,所以一直在潜心研读中... 本次的更新内容主要是响应图谱问答集成LLM项目中反馈问题的优化总结,对KBQA集成LLM不熟悉的客 ...

  9. mybatis中的useGeneratedKeys="true"

    Springboot中 Mybatis 配置文件 Mapper参数useGeneratedKeys="true" keyProperty="id"useGene ...

  10. babel 基础概念 & 从零到一写一个 babel 插件

    babel 基础概念 简单来说,做语法转换兼容的, 复杂一点的说,babel可以将我们写的 ES6+ 的Javascript语法转换为向后兼容的语法,以便能够在旧版本的浏览器或者其他环境运行. bab ...