首页 > 编程语言 >基础算法

基础算法

时间:2023-05-07 14:56:33浏览次数:51  
标签:龟速 ll 基础 long 算法 lld% ans lld

位运算

拆解:例如龟速乘和快速幂。
状态压缩:可以用一个数字表示一个状态,不够长还可以用bitset。

龟速乘

通过对数字的每一位进行拆分,将乘法变成加法。

代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll mul(ll a,ll b,ll p){
	ll ans=0;
	while(b){
		if(b&1)ans=(ans+a)%p;
		a=2*a%p;
		b>>=1;
	}
	return ans;
} 
int main(){
	ll a,b,p;
	scanf("%lld%lld%lld",&a,&b,&p);
	printf("%lld",mul(a,b,p));
}

快速幂

与龟速乘相类似,将次幂分解成若干次乘法。

代码
#include<bits/stdc++.h>
using namespace std; 
typedef long long ll;
ll a,b,p;
ll qpow(ll a,ll b){
	ll ans=1;
	while(b){
		if(b&1)ans=ans*a%p;
		a=a*a%p;
		b>>=1; 
	}
	return ans%p;
}
int main(){
	scanf("%lld%lld%lld",&a,&b,&p);
	printf("%lld^%lld mod %lld=%lld",a,b,p,qpow(a,b));
}

起床综合困难症

此题秒处是位运算只能影响到当前位,可以单独考虑每位。

奇偶变换

x^1,一般用于建双向边。

标签:龟速,ll,基础,long,算法,lld%,ans,lld
From: https://www.cnblogs.com/lldxjw/p/17379321.html

相关文章

  • 信号基础
    一、概念信号是事件发生时对进程的通知机制,也可以把它称为软件中断。信号与硬件中断的相似之处在于能够打断程序当前执行的正常流程,其实是在软件层次上对中断机制的一种模拟。大多数情况下,是无法预测信号达到的准确时间,所以,信号提供了一种处理异步事件的方法。信号的目的是用来......
  • Spring Cloud的基础信息
    SpringCloud是什么? SpringCloud是一系列框架的有序集合,它利用SpringBoot的开发便利性简化了分布式系统的开发,比如服务发现、服务网关、服务路由、链路追踪等。SpringCloud并不重复造轮子,而是将市面上开发得比较好的模块集成进去,进行封装,从而减少了各模块的开发成本。换句......
  • pytorch基础学习.md
    pytorch入门学习来源:https://www.bilibili.com/video/BV1hE411t7RN安装#1.已安装nvidia相关驱动#2.安装python-pytorch-cudansfoxer@ns-pc~/Temp>yay-Qipython-pytorch-cudanumactl基础使用DataSet数据集加载继承DataSet类,并实现get_item_fromtorch.utils......
  • 财务基础知识:单式记账法和复式记账法
    单式记账法:单式记账法从字面即可理解,这是一种比较单一的记账法,与之相对的则是复式记账法。单式记账法的主要特点:属于一个简单的记账法而且是不完整的,它主要是记公司的现金收入的账目。简单点说就是会记录一下公司的收入多少,然后公司与银行以及欠人家多少钱这样的数据。公司有......
  • Book-Linux 系统编程-41章 共享库基础
    Book-Linux系统编程-41章共享库基础共享库是一种将库函数打包成一个单元使之能够在运行时被多个进程共享的技术。这种技术能够节省磁盘空间和RAM。41.1目标库构建程序的一种方式是简单地将每一个源文件编译成目标文件,然后将这些目标文件链接在一起组成一个可执行程序,如下所......
  • numpy的基础运算
    1.矩阵相减,矩阵元素平方,矩阵元素比较大小: 2.np.dot的矩阵运算: 3.求总数据的和,每一列的求和,每一行的求和: 4.求总数据的最小值,每一列的最小值,每一行的最小值: 5.求总数居的最大值,每一列的最大值,每一行的最大值: ......
  • m基于POCS算法的空域序列图像超分辨率重建matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:     2.算法涉及理论知识概要       随着信息处理技术和视觉通信技术的高速发展,人们获取的知识量爆炸式增长,因此迫切的要求完善的信息处理技术为人们提供更加方便、快捷服务。数字图像及及其相关技术是信息处理技......
  • Golang基础--加锁与原子操作
    前言在实际项目开发中,有时会面临同一时刻将多个goroutine作用于同一个对象的情况,此时,他们之间会发生冲突,这种情况称为数据竞态问题。例如:packagemainimport("fmt""time")varcountintfuncmain(){goCountPlus(10000)goCountPlus(10000)......
  • 为什么说程序=算法+数据结构
    听到`程序=数据结构+算法`,可能很多同学觉得不太好理解。那么如果我说`程序=变量+业务`,是不是就好理解了。其实我们开发一款应用程序,就是定义一些变量,然后围绕这些变量进行业务的开展。理解了,我们再来说。变量只是统称,我们可能针对不同的业务使用不同的变量类型(数据结构),来......
  • go基础
    第一段代码packagemain//声明文件所在的包,每个go文件必须有归属的包import"fmpt"//引入程序需要用的包,为了使用包下的函数,比如printlnfuncmain(){fmt.Println("Hellogolang!")//控制台打印输出一句话,双引号内会原样输出}对源文件test.go进行编译:使用go......