洛谷连接&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. lsjORM ----让开发变得更加快捷(一)

    描述: 1.lsjORM底层采用的是开源petapocoORM框架,你可以任意的拓展它 2.自动生成DAL Model BLL等文件,让习惯三层开发的你更加顺手 3.节省编写sql的时间,让开发更快捷 ...

  2. 【U8】bom全阶 点击展开按钮,无法获得叶子子阶

    经查看 是因为 子件的失效日期与生效日期是相同一天,延后子件的失效日期就可以在点击展开按钮后,看到子阶bom了.

  3. navicat premium 15 下载和激活

    Navicat Premium 15 下载地址 链接:https://pan.baidu.com/s/1bL-M3-hkEa4M-547giVjYQ?pwd=1107 推荐安装参考地址:https:/ ...

  4. 必应每日一图url(可直接使用)

    必应每日一图url 首先放出地址,后面是一堆心路历程(一堆废话),只为链接的可以不用看 https://baotangguo.cn:8081/ 最初 ​ 博客园装饰的时候(虽然是抄的),想着上面背景图 ...

  5. 001. git基础

    目录 1. 持续集成教程 1.1 持续集成的基础概念 1.2 持续集成的一般流程 1.3 认识DevOps 1.3.1 DevOps是啥? 1.3.2 为什么需要DevOps呢? 1.3.3 DevO ...

  6. #define、const和enum

    enum:枚举类型(枚举变量的值只能等于枚举中定义的常量) #define:明示常量(定义真正的常量) const:限定符(名不符实,应该叫read only),限定一个变量为只读 C语言常量: 1. ...

  7. docker——容器的基本操作

    docker 容器的基本操作 run 格式 docker run [选项] 镜像 [命令] [参数...] 选项 选项 解释 -d 后台运行 -i 交互模式 -t 分配一个伪终端 -p 设置端口 -- ...

  8. 逻辑卷缩容报错 xfs_growfs: /dev/new/new_box is not a mounted XFS filesystem

    [root@server ~]# xfs_growfs /dev/new/new_box xfs_growfs: /dev/new/new_box is not a mounted XFS files ...

  9. 快速生成树协议(RSTP)基本知识及实验(使用eNSP)

    关于生成树协议的知识可参考我的另一个博客:https://www.cnblogs.com/mrlayfolk/p/12242627.html 这篇博文主要介绍快速生成树协议(RSTP)的基本知识.-- ...

  10. Kubernetes监控手册06-监控APIServer

    写在前面 如果是用的公有云托管的 Kubernetes 集群,控制面的组件都交由云厂商托管的,那作为客户的我们就省事了,基本不用操心 APIServer 的运维.个人也推荐使用云厂商这个服务,毕竟 K ...