首页 > 其他分享 >测试(快速幂+数学)

测试(快速幂+数学)

时间:2024-07-13 19:41:55浏览次数:14  
标签:取模 a% int 数学 测试 return t% 快速 Mod

洛谷 P1630 求和


 

第1题     测试 查看测评数据信息

给一个式子,求它的值,(1^b+2^b+...+a^b)%1e4

输入格式

 

第一行一个数t,表示有t组测试数据

对于每组测试数据,一行有两个整数a,b

部分数据:1<=t<=10, a,b<=1e3

对于100%的数据,1<=t<=100,1<=a,b<=1e9

 

输出格式

 

共t行,每行一个整数

 

输入/输出例子1

输入:

1

2 3

 

输出:

9

 

样例解释

 

取模的值通常是有规律的,模范围非常小可以通过找规律来解决

 

指数很大我们可以用快速幂来解决,再逆天的数都可以在64次内解决(即O(1))。

所以b很大不是问题(逃),问题是a这么大如何解决,这样一个循环肯定是要爆的。

取模的值通常是有规律的,而且这道题给的模范围非常小,也就是说可以通过找规律来解决

原式:a^b % p

即:b个a相乘再模上p,下面用2个a来代替b个a

转换:

(a*a) % p 通过乘法取模分配律得到下面的式子

(a%p * a%p)%p (也就是b个a%p相乘再模p)

(a%p)^b % p

也就是a的范围被p限制住了,若p=100,那么a=101 相当于 a=1

所以这道题写一个前缀和就做出来了

 

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e4+5, Mod=1e4;

int t, a, b, sum[N];
int Pow(int a, int b)
{
	if (b==1) return a%Mod;
	
	int t=Pow(a, b/2);
	if (b%2==0) return (t%Mod*t%Mod)%Mod;
	else return (t%Mod*t%Mod*a%Mod)%Mod;
} 
signed main()
{
	scanf("%lld", &t);
	while (t--)
	{
		scanf("%lld%lld", &a, &b);
		for (int i=1; i<=10000; i++) sum[i]=(sum[i-1]+Pow(i, b))%Mod;
		
		printf("%lld\n", (a/10000*sum[10000]%Mod+sum[a%10000]%Mod)%Mod);
	}
	return 0;
}

  

标签:取模,a%,int,数学,测试,return,t%,快速,Mod
From: https://www.cnblogs.com/didiao233/p/18300538

相关文章

  • 测试驱动开发的艺术:Xcode中实现TDD的全面指南
    测试驱动开发的艺术:Xcode中实现TDD的全面指南在软件开发过程中,测试驱动开发(Test-DrivenDevelopment,TDD)是一种以测试为先导的开发模式,它强调先编写测试用例,再编写功能代码,从而确保代码的质量和可维护性。Xcode作为苹果官方的集成开发环境(IDE),提供了强大的工具和框架来支持TD......
  • 如何对Linux系统进行基准测试4工具Sysbench
    Sysbench简介Sysbench是一款多用途基准测试工具,可对CPU、内存、I/O甚至数据库性能进行测试。它是一个基本的命令行工具,提供了直接、简便的系统测试方法。github地址:https://github.com/akopytov/sysbench。主要功能:CPU:衡量CPU执行计算密集型任务的能力。内存:衡量内存子......
  • 网络安全——网络渗透测试入门
     ⼀、行业术语介绍渗透测试(PenetrationTesting):模拟黑客攻击手段对目标系统进行安全评估的过程。APT(AdvancedPersistentThreat):高级持续性威胁,指有组织的、长期针对性的网络攻击。PTES(PenetrationTestingExecutionStandard):渗透测试执行标准,指导渗透测试的行业标准。......
  • 【快速入门大模型应用开发,这本书帮你轻松实现!】
    文末有福利!快速入门大模型应用开发,这本书帮你轻松实现!前言书籍简介蛇尾书特色蛇尾书思维导图作译者简介业内专家书评前言如果问个问题:有哪些产品曾经创造了伟大的奇迹?ChatGPT应该会当之无愧入选。仅仅发布5天,ChatGPT就吸引了100万用户——当然,数据不是关键,关键是......
  • 浅谈接口自动化测试
    接口测试大家一定不陌生了,对QA来说也是一项比较基础的技能,并且在现代软件开发中,持续集成已经成为一种不可或缺的实践,所以很多项目中都会做UI自动化、接口自动化的持续集成。在实际工作中,个人感觉接口自动化测试比UI自动化测试性价比要高得多的多,首先接口测试在整个流程......
  • 数学建模论文写作方法——首页
    个人学习笔记,课程为数学建模清风——论文写作方法教程(国赛和美赛)首页三要素:论文标题+摘要+关键词目录一、论文标题1.两种形式2.优秀论文标题实例3.要求二、摘要(超级重要!!!)1.什么是摘要2.摘要的作用3.三要素4.书写特点5.重要性6.摘要样例7.摘要占据的篇幅8.摘要的......
  • 电源纹波测试,从原理图到PCB板和示波器探头设置详解(适合新手小白)
    一、什么是纹波?    简单来说纹波就是叠加在直流信号上的交流干扰信号,是衡量电源好坏的一个重要标准。二、纹波测试点在原理图什么位置?    严谨起见我们尽量选择电路的终端进行测试,比如给MCU芯片供电的引脚,我们需要测量放置在MCU端的电容两端的纹波。如下图......
  • LeetCode 3091. 执行操作使数据元素之和大于等于 K(贪心、数学)
    3091.执行操作使数据元素之和大于等于K思路:数学思维题。先执行操作一让1加到k的平方根向上取整的数t,然后执行操作二,达到数组和>=k即可。classSolution{public:intminOperations(intk){intt=ceil(sqrt(k));return(k+t-1)/t+t-2;}......
  • 软件开发过程全套文档(规格说明书;详细设计;测试计划;验收报告)
        前言:在软件开发过程中,文档资料是非常关键的一部分,它们帮助团队成员理解项目需求、设计、实施、测试、验收等各个环节,确保项目的顺利进行。以下是各个阶段的文档资料概述:软件项目管理部分文档清单: 工作安排任务书,可行性分析报告,立项申请审批表,产品需求规格说明书,需......
  • 2024 辽宁省大学数学建模竞赛B 题 钢铁产品质量优化完整思路 代码 结果分享(仅供学习)
    冷轧带钢是钢铁企业的高附加值产品,其产品质量稳定性对于钢铁企业的经济效益具有非常重要的影响。在实际生产中,冷连轧之后的带钢需要经过连续退火处理来消除因冷轧产生的内应力并提高其机械性能。连续退火的工艺流程如图1所示,一般包括加热、保温、缓冷、快冷、过时效、淬火等......