首页 > 其他分享 >zr 摆烂记

zr 摆烂记

时间:2024-07-17 16:18:31浏览次数:8  
标签:摆烂记 dfrac bmod exgcd ax 定理 zr equiv

你说得对,我也不知道怎么整合到数数论论里。

\((a,b)=1\) 是 \(ax\equiv 1(\bmod b)\) 有解的充要条件。

首先,对于 \(x=0\rightarrow b-1\),\(ax\equiv y(\bmod b)\),\(y\) 互不相同。

证明考虑加加减减。

考虑求出这个解,得到 \(ax=by+1\)。

不难有推论:若 \((a,b)=1\),\(ax+by=1\) 有整数解。

进一步的,\(ax+by=(a,b)\) 有整数解。

这就是 exgcd 的形式。

进一步考虑 \(a+b=c\),有解的条件显然是 \((a,b)|c\)。

然后可以根据刚才的来做。

这是 exgcd 吗?这不是 exgcd。

因此我们称为 byrgcd。

while(T--){
	read(a),read(b),read(c);
	int d=std::__gcd(a,b);
	if(c%d!=0){
		println(-1);
		continue;
	}
    a/=d,b/=d;
	int x=ksm(a,phi[b]-1,b); 
	int y=(a*x-1)/b;
	y=-y;
	x*=d,y*=d;
	x*=c/d,y*=c/d;
	printsp(x),println(y);
}

上面用到了欧拉定理。

\(\dfrac{b}{d}\) 不一定是质数,不能用费马小定理。

你知道什么是裴蜀定理吗?就是上面那坨东西有解。

上面只是求出来一组特解 \(x_0,y_0\)。

通解的形式:\(x=x_0+\dfrac{b}{d}\times k,y=y_0-\dfrac{a}{d}\times k\)。

为什么所有通解都能被这种形式表示出来?

因为 \((\dfrac{b}{d},\dfrac{a}{d})=1\),然后乱证一下。

一个更加正经的 exgcd 是在求 gcd 时推一下。

中国剩余定理

考虑合并两个同余方程:

\[x\equiv a_1(\bmod m_1) \]

\[x\equiv a_2(\bmod m_2) \]

改写一下?

\[x=pm_1+a_1 \]

\[x=qm_2+a_2 \]

\[pm_1+a_1=qm_2+a_2 \]

\[pm_1-qm_2=a_2-a_1 \]

oops,这是什么!

exgcd。

怎么合并?

可以构造出一个 \(x_0\) 满足两个方程。

我们断言,解的形式为 \(x_0+k\times\operatorname{lcm}(m_1,m_2)\)。

显然。

然后合并起来就是 \(x\equiv x_0(\bmod \operatorname{lcm}(m_1,m_2))\)。

没了。

怎么避免炸 long long?

先除后乘。

加上题解区一些神秘的做法。

lucas

p 是质数

对于组合数在 p 进制下做分解,然后组合一下乘起来。

进行一些简单的证明活动。

\((1+x)^p\equiv 1+x(\bmod p)\)。

你大概会二项式定理。

拆开。

然后乱证。

\(p=2\) 时 lucas 可以表示成 \(C_n^m=1\) 当且仅当 \(n\&m=m\)。

逆元

线性求一堆数的逆元

前缀积,然后推式子。

exlucas

标签:摆烂记,dfrac,bmod,exgcd,ax,定理,zr,equiv
From: https://www.cnblogs.com/BYR-KKK/p/18307689

相关文章

  • 【2024-ZR-C Day 1】数论基础
    1.Ex-GCD1.1.定义若\((a,b)=1\),则必然存在整数\(x\)使得\(ax\equiv1(\bmodb)\).即:\(ax+by=\gcd(a,b)\),\(x,y\)必然有解。1.2.裴蜀定理推论:若\((a,b)=1\),则必然存在整数\(x,y\)满足\(ax+by=1\).裴蜀定理:对于\(a,b\in\mathbb{Z}\),\(\existsx,......
  • 暑期集训ezret(学会看gdb)
    64位ida打开并反汇编的main():进入input_person函数:仔细看可以找到一个特别的函数名win,点进去发现是后门:根据ida看出程序的基本逻辑是输入name和age,输出age和name很多时候ida会抽风(bushi),就比如operater=里面的参数没给,不过没关系,我们可以猜(),可以看出input_person里面v11(age)......
  • lazreport调用fr3格式的方法
    近日使用时发现lazreport自带调用fr3的功能,按下面的方法调用就可以:1、uses添加fr3tolrf2、form添加frreport3、使用LoadFastReport3调用fr3文件LoadFastReport3(frReport控件名称,fr3格式的文件,返回相应信息); unitUnit1;{$modeobjfpc}{$H+}interfaceusesClas......
  • 前端画图引擎ZRender,echarts的渲染器,你知道吗?
    Zrender是一个轻量级的Canvas和SVG渲染库,它提供了一个高性能的图形绘制和交互的解决方案,用于在Web页面上创建丰富的数据可视化和交互式图形。可能大部分小伙伴不知道这个类库,本文给大家科普一下。一、Zrender是谁?该项目由EFE团队开发而来,项目托管在GitHub上。Zrender基于HT......
  • Redis的zset的zrem命令可以做到O(1)吗?
    事情是这样的,当我用zrem命令去移除value的时候,我知道他之前会做的几个步骤1、查找这个value对应的score(通过zset中的dict)2、根据这个score查找到跳表中的节点3、删除这个节点我就想了一下为什么dict为什么要保存score呢?如果保存的是跳表中的节点,那么不就可以做到删除O(1)......
  • LitCTF2024——ezrc4
    0x01关于rc4rc4简介rc4的维基具体实现step1rc4_init()voidrc4_init(unsignedchar*s_box,unsignedchar*key){ inti=0,j=0; chark[256]; intlen=strlen(key); for(i=0;i<256;i++){ //以256填充s盒 s[i]=i; //使用key循环填充k k[i]=key[i%len]; } //......
  • IDEA2021.2.2使用Spring Initializr创建springboot项目
    使用SpringInitializr创建Springboot项目第一步:输入项目名称、项目所在路径等信息 在选择Java一项时,只有17、21、22选项。其中ProjectSDK一项,代表本地安装的JDK版本。Java一项,代表创建Spring工程时默认的JAVA版本。当选择最低值17时,点击下一步会弹出错误页面,提示“iThere......
  • ZR.Admin
    ZR.Admin小改和VUE3版本体验-数据酷软件-博客园(cnblogs.com) ZR.Admin小改和VUE3版本体验##......
  • ADP-2-20+ 信号调节 20MHz-2GHzRF功分器 合路器
    ADP-2-20+是一款由Mini-Circuits公司出产的功分器(powerdivider)。这款功分器的工作温度规模为-40°C至85°C,贮存温度规模为-55°C至100°C。作为分路器,它的电源输入最高可达1W,内部功耗最大为0.125W。假如超越这些限制,可能会导致功分器发生永久性损坏。此外,ADP-2-20+还具有低......
  • 微雪ESP32-S3-Zreo学习笔记之WS2812
    板载WS2812板载1颗WS2812连接IO21软件下载ESP32-S3-Zero没有板载USB转串口,无法实现自动下载。下载软件时要按住Boot按键再上电,此时电脑会识别到一个USB模拟的COM口,可用于下载软件。开发环境编程环境是使用的esp-idf-4.4.2;安装esp-idf-5.0.2、esp-idf-5.1.2都不能正常使用......