[补题记录] Atcoder Beginner Contest 293(E)

news2024/11/17 17:30:19

URL:https://atcoder.jp/contests/abc293

目录

E

Problem/题意

Thought/思路

Code/代码


E

Problem/题意

给出 A、X、M,求 \sum_{i=0}^{x-1} A^{i} (mod M)

Thought/思路

一开始想等比数列求和,但是 m 不保证是质数,所以不能用。

假设 dp[x] 表示,前 x 个数求和的值。

  • 当 x 为偶数时:dp[x] = dp[x / 2] + dp[x / 2] * ksm(a, x / 2)
  • 当 x 为奇数时:dp[x] = 1 + a * dp[x - 1]

Code/代码

不用记忆化也能过。

#include "bits/stdc++.h"

#define int long long

int a, x, m;
std::map <int, int> mp; // mp[x]:x 个数相加

int ksm(int a, int b) {
	int res = 1;
	while (b > 0) {
		if (b & 1) res = res * a % m;
		b /= 2;
		a = a * a % m;
	}
	return res % m;
}

int dfs(int x) {
    if (x == 1) return 1;
    if (x & 1) {
        mp[x - 1] = dfs(x - 1) % m;
        return (1 + a * mp[x - 1] % m) % m;
    } else {
        mp[x / 2] = dfs(x / 2) % m;
        return (mp[x / 2] + mp[x / 2] * ksm(a, x / 2) % m) % m;
    }
}

signed main() {
	std::cin >> a >> x >> m;
    std::cout << dfs(x) % m;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1118612.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringMVC(第一个项目HelloWorld))

文章目录 1.在maven引入依赖2.配置web.xml3.创建请求控制器4.创建springMVC的配置文件5.测试HelloWorld总结 1.在maven引入依赖 <dependencies><!-- SpringMVC --><dependency><groupId>org.springframework</groupId><artifactId>spring…

linux minicom 调试串口

1、使用方法 1. 打开终端 2. 输入命令&#xff1a;minicom -D /dev/ttyS0 3. 按下回车键&#xff0c;进入minicom终端界面 4. 在终端界面中发送指令或数据&#xff0c;查看设备返回的数据 5. 按下CtrlA&#xff0c;松开释放&#xff0c;再按下X&#xff0c;退出minicom2、一些…

教你如何打造一款流行的服装定制小程序

随着移动互联网时代的到来&#xff0c;线上商务发展迅猛&#xff0c;服装店也开始积极探索线上销售渠道。其中&#xff0c;小程序成为了服装店主们的首选之一。小程序以其便捷、快速的特点&#xff0c;为服装店的线上经营带来了全新的机遇。接下来&#xff0c;我们将介绍如何通…

TCP和UDP的原理及其区别(三次握手、四次挥手)

TCP和UDP都是在传输层上工作的协议&#xff0c;用于在网络中传输数据。 1、TCP和UDP之间的区别 TCP和UDP的主要区别在于它们提供的服务和特性。TCP提供可靠的、有序的、基于连接的数据传输&#xff0c;适用于对数据完整性和可靠性要求较高的应用&#xff08;邮件、短信&#xf…

CPU飙高问题排查命令

1. 远程客户端连接服务器,top命令查看cpu占用最高的进程id 2. (top -H -p 进程pid) 命令: 找出进程里面线程占用CPU高的线程有哪些 ? 3. (printf 0x%x\n 线程id) 线程id转16进制 4. (./jstack PID | grep TID(十六进制) -A 30)

小县城蔬菜配送小程序制作全攻略

随着互联网的普及和人们对生活品质要求的提高&#xff0c;越来越多的小县城开始开发蔬菜配送小程序&#xff0c;以满足当地居民对新鲜蔬菜的需求。制作一个小县城蔬菜配送小程序&#xff0c;需要经过以下步骤&#xff1a; 步骤一&#xff1a;登录乔拓云平台 首先&#xff0c;打…

2023-10-19 LeetCode每日一题(同积元组)

2023-10-19每日一题 一、题目编号 1726. 同积元组二、题目链接 点击跳转到题目位置 三、题目描述 给你一个由 不同 正整数组成的数组 nums &#xff0c;请你返回满足 a * b c * d 的元组 (a, b, c, d) 的数量。其中 a、b、c 和 d 都是 nums 中的元素&#xff0c;且 a ! b…

博客系统测试报告

一、项目背景 本项目是一个简单的博客系统&#xff0c;该系统具有注册、登录、编写博客、修改博客、删除博客、浏览博客的功能。 项目地址&#xff1a;博客列表http://59.110.22.4:9011/blog_list.html 二、项目功能 1、注册功能&#xff1a;用户可以创建适当的用户名、密码…

JavaWeb——IDEA相关配置(Tomcat安装)

3、Tomcat 3.1、Tomcat安装 可以在国内一些镜像网站中下载Tomcat&#xff0c;同样也可以在[Tomcat官网](Apache Tomcat - Welcome!)下载 3.2、Tomcat启动和配置 一些文件夹的说明 启动&#xff0c;关闭Tomcat 启动&#xff1a;Tomcat文件夹→bin→startup.bat 关闭&#…

博客自动化测试

1、熟悉项目 2、针对核心流程设计测试用例&#xff08;手工测试用例&#xff09; 3、将手工测试用例转化成自动化测试用例 4、部署 1、熟悉项目 2、针对核心流程设计测试用例&#xff08;手工测试用例&#xff09; 3、将手工测试用例转化成自动化测试用例 代码结构如何设…

【微信小程序开发】小程序微信用户授权登录(用户信息手机号)

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于小程序的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 授权流程讲解 一.用户信息授权登录 1.w…

基于springboot小区物业管理系统

功能如下图所示 摘要 基于Spring Boot的小区物业管理系统是一项重要的解决方案&#xff0c;旨在提升小区物业管理的效率和质量。这个系统整合了现代技术和管理实践&#xff0c;为小区内的住户和物业管理人员提供了便捷的工具&#xff0c;以更好地管理和维护住宅区。该系统的关键…

10_集成学习方法:随机森林、Boosting

文章目录 1 集成学习&#xff08;Ensemble Learning)1.1 集成学习1.2 Why need Ensemble Learning?1.3 Bagging方法 2 随机森林(Random Forest)2.1 随机森林的优点2.2 随机森林算法案例2.3 随机森林的思考&#xff08;--->提升学习&#xff09; 3 随机森林&#xff08;RF&a…

【RNA biology】RNA的多功能性与早期生命进化

文章目录 RNARNA plays core functions in Central Dogma of BiologyrRNAsnRNA RNA worldReplication催化作用感知环境变化并作出响应 来自Manolis Kellis教授&#xff08;MIT计算生物学主任&#xff09;的课 油管链接&#xff1a;6.047/6.878 Lecture 7 - RNA folding, RNA wo…

PHP代码审计工具

PHP代码审计工具 1 环境准备 Seay源代码审计系统.exe 和准备靶场的源码php 2 Seay下载地址 https://github.com/f1tz/cnseay安装Seay源代码审计系统.exe报错时&#xff0c;安装.net framework 3.5 # windows插件.net framework 3.5 下砸地址 https://www.microsoft.com/en…

CSS基础入门01

目录 1.CSS是什么 2.基本语法规范 3.引入方式 3.1内部样式表 3.2行内样式表 3.3外部样式 4.代码风格 4.1样式格式 4.2样式大小写 4.3空格规范 5.选择器 5.1选择器的功能 5.2选择器的种类 6.基础选择器 6.1标签选择器 6.2类选择器 6.3id 选择器 6.4通配符选择…

【趣味随笔】盘点那些国内外知名的扫地机器人品牌

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…

电容屏物体识别手工制作

电容屏识别物体效果2 电容屏识别物体效果1 电容屏识别物体效果3 电容屏识别物体效果4 电容识别物理效果5 我们感兴趣的是找到让我们的平面屏幕与物理三维物体和表面交互的方法。 触摸屏无处不在&#xff0c;成千上万的应用程序中有多种设备和屏幕格式&#xff0c;但我们只找到…

十三水中各种牌型判断LUA版

近期回归程序行业&#xff0c;由于业务需求需要做十三水游戏&#xff0c;什么是十三水就不在多讲&#xff0c;下面是判断十三水牌型的方法&#xff08;带大小王&#xff09; GetSSSPaiType {}; local this GetSSSPaiType; local huaseTable {}; local numTable {}; functi…

计算机组成原理 new06 第二章 BCD码

文章目录 BCD码8421码余3码2421码三种码的总结 BCD码 概念&#xff1a;在计算机中&#xff0c;除了能够用二进制表示十进制之外&#xff0c;在二进制的基础上还衍生出了很多种的表示方式这些种表示方式的统称就是BCD码。 8421码 概念&#xff1a;8421码用4位二进制来表示一个十…