Timus 1673(反欧拉函数)

对于双欧拉角(正反欧拉角)的一些理解和思考 由以上分析,对于使用正、反欧拉角,如果是出于精度目的,我并不觉得四元数方法精度较差;如果出于显示目的,我觉得姿态角切换会跳变,而且反欧拉角定义对常人来说比较难理解,对使用者来说也会有很大困难;如果是出于飞控目的,可以直接使用四元数做飞控,而不是姿态角 阅读详情

Timus 1673(反欧拉函数)

题目链接

有题意可知,设第i个教授掌管的实验室编号为index,则满足 i n d e x ≡ i ( m o d N ) index\equiv i\pmod N index≡i(modN);对于第k个同学,只去编号为 i n d e x ′ = k x ( k ≥ 1 ) index'=kx(k\ge 1) index′=kx(k≥1)的实验室。如果第k个同学要获得考试资格,则满足如下同余方程组
{ k x 1 ≡ 1 ( m o d N ) k x 2 ≡ 2 ( m o d N ) . . . k x N ≡ N ( m o d N ) \left\{\begin{matrix} kx_1\equiv 1\pmod N\\ kx_2\equiv 2\pmod N\\ .\\ .\\ .\\ kx_N\equiv N\pmod N \end{matrix}\right. ⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧​kx1​≡1(modN)kx2​≡2(modN)...kxN​≡N(modN)​
尽管对于单个方程, g c d ( k , N ) = 1 gcd(k,N)=1 gcd(k,N)=1不是单个方程有解的充要条件;但是如果要求每个方程都有解则 g c d ( k , N ) = 1 gcd(k,N)=1 gcd(k,N)=1是充分必要条件。
设方程等式右边的数为y。当 g c d ( y , N ) = 1 gcd(y,N)=1 gcd(y,N)=1且 g c d ( k , y ) = 1 gcd(k,y)=1 gcd(k,y)=1时,方程有解的当且仅当是k存在模N下的逆元,而k存在模N下的逆元k存在模N下的逆元gcd(k,N)=1。

所以题目要求的N是满足 φ ( N ) = k \varphi(N)=k φ(N)=k的最小N。

已知 N = ∏ p i e i N=\prod p_i^{e_i} N=∏piei​​,则有 φ ( N ) = ∏ p i e i − 1 ( p i − 1 ) \varphi(N)=\prod p_i^{e_i-1}(p_i-1) φ(N)=∏piei​−1​(pi​−1)。

有 k = ∏ p i e i − 1 ( p i − 1 ) k ∏ p i = N ∏ ( p i − 1 ) N = k ∏ p i ∏ ( p i − 1 ) \begin{aligned}k&=\prod p_i^{e_i-1}(p_i-1)\\k\prod p_i&=N\prod (p_i-1)\\N&=\frac{k\prod p_i}{\prod (p_i-1)}\end{aligned} kk∏pi​N​=∏piei​−1​(pi​−1)=N∏(pi​−1)=∏(pi​−1)k∏pi​​​

1、若存在 φ ( N ) = k \varphi(N)=k φ(N)=k,则一定有 p i − 1 ∣ k p_i-1|k pi​−1∣k。
2、若 k + 1 k+1 k+1为素数,则 N = k + 1 N=k+1 N=k+1为最优解。
3、若 k + 1 k+1 k+1不为素数,则则k的最优解N一定不是素数,那么N的素因子分解式至少有两个不同的素因子,因此一定存在 ( p i − 1 ) ∣ k , ( p j − 1 ) ∣ k (p_i-1)|k,(p_j-1)|k (pi​−1)∣k,(pj​−1)∣k所以一定存在一个素因子 p i ≤ k p_i\le \sqrt{k} pi​≤k ​。

把问题转化成,
满足如下约束条件:
k ∏ p i e i − 1 ( p i − 1 ) = 1 \frac{k}{\prod p_i^{e_i-1}(p_i-1)}=1 ∏piei​−1​(pi​−1)k​=1
最小化 N = ∏ p i e i N=\prod p_i^{e_i} N=∏piei​​。
因此可以用递归来求解N:
N = φ − 1 ( k ) = min ⁡ ( x − 1 ) x y − 1 ∣ k ( x y ⋅ φ − 1 ( k ( x − 1 ) x y − 1 ) ) , x   i s   p r i m e N=\varphi^{-1}(k)=\min_{(x-1)x^{y-1}|k}(x^y\cdot\varphi^{-1}(\frac{k}{(x-1)x^{y-1}})),x \space is\space prime N=φ−1(k)=(x−1)xy−1∣kmin​(xy⋅φ−1((x−1)xy−1k​)),x is prime

用dfs枚举即可,注意 k = 1 k=1 k=1时的特判以及保证满足N的素因子分解式中素因子的唯一性。

优化建议,初始化将所有小于 k \sqrt{k} k ​且满足 ( x − 1 ) ∣ k (x-1)|k (x−1)∣k的素数x放在一个容器中,dfs节点树扩展的时候从容器里选择合法扩展方向即可。当扩展到节点中的k满足k+1为素数且合法(即满足N素因子的唯一性),直接返回k+1。不建议记忆化搜索,因为不知道之前搜索的答案是否与现在的答案合法。

注意INF。

代码如下:

#include<cstdio>
#include<algorithm>
#include<vector>
#include<iostream>
#include<unordered_map>
#include<map>
#include<cstring>
using namespace std;
typedef long long ll;
const ll INF=1e16+5;
const int max_n=1e6;
int prime[max_n];
bool vis[max_n];
vector<int> v;
int cnt;
unordered_map<ll,ll> mp;
map<ll,ll> mp1;
void init(ll k)
{
	cnt=0;
	for(ll i=2;i<max_n;i++)
	{
		if(!vis[i]){
			prime[cnt++]=i;
		}
		for(ll j=0;j<cnt&&i*prime[j]<max_n;j++)
		{
			vis[i*prime[j]]=1;
			if(i%prime[j]==0)break;
		}
	}
	ll m=sqrt(k+0.5);
	for(int i=0;i<cnt&&(prime[i]-1)<=m;i++)
	if(k%(prime[i]-1)==0)v.push_back(prime[i]);
}
bool isprime(ll n)
{
	for(ll i=2;i*i<=n;i++)
	if(n%i==0)return false;
	return true;
}
ll solve(ll k,int pos)
{
	if(k==1)return 1;
	if(isprime(k+1)){
		if(!mp1[k+1])return k+1;
		else return INF;
	}
	ll m=sqrt(k+0.5);
	ll ans=INF;
	for(int i=pos;i<v.size();i++)
	{
		mp1[v[i]]=1;
		for(ll ret=v[i]-1,x=v[i];ret<=k;x*=v[i],ret*=v[i])
		if(k%ret==0){
			ll t=solve(k/ret,i+1);
			if(t!=INF)ans=min(ans,x*t);
		}
		mp1[v[i]]=0;
	}
	return ans;
}
int main(void)
{

	ll k; 
	scanf("%lld",&k);
	if(k==1){
		printf("1\n");
		return 0;
	}
	init(k);
	ll ans=solve(k,0);
	if(ans==INF)printf("0\n");
	else printf("%lld\n",ans);
}
ArcGIS高效拆分shp文件:无需依赖属性表的实用技巧 本文针对ArcGIS中shp文件因属性表缺失而难以拆分的问题,详细介绍了无需依赖属性表的实用技巧。核心是使用“拆分多部件要素”工具,直接根据图形结构将多个独立但被合并的部件拆分为单个要素,并提供了ArcGIS Pro和ArcMap的操作流程、关键注意事项及拆分后的属性处理方案。 阅读详情

相关推荐

半车(前后、左右)、整车悬架详细推导建模和simulink仿真分析

用达朗贝尔定理依据悬架数学模型,得到悬架模型微分方程,分别用simulink建立前后半车、左右半车悬架;结合转向2自由度模型与半车侧倾模型,对模型考虑相干性、延时性的C级随机路面下,仿真分析给定角阶跃输入下的侧倾稳定性。

Mr.邹的博客 1万+

逆欧拉函数

难 φ(x)=x∏i=1n(1−1pi)φ(x)=x\prod_{i=1}^n(1-\frac{1}{p_i}) 逆推可得出x的关系式 x=φ(x)∗p1p1−1∗p2p2−1∗...∗pnpn−1x=φ(x)*\frac{p_1}{p_1-1}*\frac{p_2}{p_2-1}*...*\frac{p_n}{p_n-1} 然后 dfs//copy #include <cstdio> #i

Mengbier's Home 696

点云语义分割:使用Cylinder3D训练SemanticKITTI数据集

将该路径修改到config/semanticktti.yaml文件中的data_path节点下。下载semanticKITTI数据集的点云数据和标签,解压到一起。系统:Ubuntu18。

zhaoguanhua的博客 2595

Timus Online Judge 1651 Shortest Subchain

题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1651 题目大意:有一条链p,有N个节点,需要你找到一条最短的链q。直接来看第二个条件,链q里面的节点的出现顺序必须和链p相同。其实也就找不出其它的条件了。大意就是经过一个节点两次,那么会形成一个环,在满足第二个条件的情况下把所有的环都去掉就行了。这道题目已经被放了好几天了,刚开始的时候我并没有什

Yick_Liao的专栏 658

2023年高教社杯全国大学生数学建模竞赛 E 题:《黄河水沙监测数据分析》真题解析与 MATLAB 解决方案

🏆 本文已收录于专栏:《滚雪球学数学建模(含历年真题)》,持续更新最新及历年数学建模竞赛资料,每篇内容力求做到“问题讲透、模型讲清、代码可用、论文可参考”,帮助你从零开始逐步建立完整的数学建模知识体系。

**My Coding Family** 903

【知识分享】IBIS 建模指南 05

本文详细阐述了IBIS模型创建过程中的关键技术和数据规范要求。主要内容包括:1. 数据完整性检查要点,强调I-V和V-T数据必须覆盖所有工艺角且匹配;2. 数据限制处理方法,介绍100/1000点限制下的两种数据筛选算法;3. 特殊数据处理技术,包括内部终端电阻调整和V-T表时间窗口选择;4. 高级关键字应用,涵盖[ModelSelector]、[Sub model]、[DiffPin]等复杂功能实现方法;5. 预加重缓冲器等特殊结构的建模方案。

一只豌豆象的博客 1592

逆欧拉函数[arc]

丧心病狂 利用欧拉函数的公式实现逆推 然后 其中附带了一点素数判断[Miller-Rabin] 总之很麻烦φ(n)=n×(p1−1)×(p2−1)…(px−1)p1×p2×…pxφ(n)=\frac{n×(p_1-1)×(p_2-1)…(p_x-1)}{p_1×p_2×…p_x}#include<iostream> #include<cstring> #include<algorithm>

今天的北宅依旧没有回家 663

STM32F407+OV2640的DCMI+DMA双缓冲JPEG图像采集系统

在嵌入式视觉系统中,数字摄像头接口(DCMI)是MCU连接CMOS图像传感器的关键硬件通道,其与DMA协同实现零CPU干预的高速数据流采集;而JPEG作为一种基于DCT变换与量化压缩的有损图像格式,依赖传感器端硬件编码引擎才能满足实时性要求。理解DCMI三重同步时序(PCLK/HSYNC/VSYNC)与DMA双缓冲机制的流水线协作原理,是突破带宽瓶颈、避免FIFO溢出和帧丢失的技术基础。该架构广泛应用于智能硬件、工业检测与边缘AI前端等需低功耗、高可靠图像捕获的场景,本文以OV2640与STM32F407为

weixin_42103128的博客 156

【 TIMUS-1748】【数学+搜索】The Most Complex Number【求反素数,数据范围较大】

传送门:http://acm.timus.ru/problem.aspx?space=1&num=1748 描述: 1748. The Most Complex Number Time limit: 1.0 second Memory limit: 64 MB Let us define a complexity of an integer a

魔笛手的博客 471

UNet改进(19):基于残差注意力模块Residual Attention的高效分割网络设计

本文提出一种结合注意力机制的改进UNet网络,通过引入残差注意力模块(ResidualAttentionBlock)增强医学图像分割性能。该网络在传统UNet的U型结构基础上,创新性地将轻量级注意力机制与残差连接相结合,在编码器-解码器各层级实现特征重标定。改进后的网络具有三方面优势:通过注意力机制自适应聚焦关键特征区域,利用残差连接缓解梯度消失问题,采用模块化设计灵活配置注意力位置。

2501_91516851的博客 780

【MATLAB例程】基于TDOA定位(两步最小二乘)的三维轨迹定位和UKF滤波,TDOA的锚点可以自适应,附完整代码

该代码实现了一种**融合TDOA(到达时间差)定位与无迹卡尔曼滤波(UKF)**的动态目标轨迹跟踪方案,适用于三维空间中的移动目标定位与滤波。TDOA定位:通过两步加权最小二乘法(TS-WLS)解算目标位置。UKF滤波:对定位结果进行非线性滤波,抑制噪声并提升轨迹平滑性。多维度误差分析:对比滤波前后误差,评估算法性能。

985工科博士毕业,专攻定位、导航和滤波等算法研究。从业10年,主要使用MATLAB 675

欧拉函数及欧拉定理&逆元学习笔记

φn∑i1ngcd⁡ni1φni1∑n​gcdni1根据容斥可得φnn∏i1k1−1piφnni1∏k​1−pi​1​所以可得以下代码i * i <= x;i ++) if(!return res;如果d∣a−bd|(a-b)d∣a−b则我们称a≡bmodda≡bmodd对于一个整数aaa和 质数ppp。

sunzz3183的博客 475

在 ABAP Push Channel 里玩转 Detached Client:用 Attach Handle 把 WebSocket 连接交接给业务逻辑

摘要:本文介绍了ABAP Push Channels (APC)中的Detached Client技术,该技术通过将WebSocket连接建立与后续处理分离,实现更高效的实时通信。核心流程包括创建连接、使用connect_and_detach交接连接、以及通过attach handle重新附着发送消息。文章还探讨了PCP协议和AMC技术在企业级推送场景中的应用,并通过示例代码展示了Detached Client的具体实现方式。这种设计解决了传统轮询的资源浪费问题,特别适用于生产线监控、客服系统等需要服务端主

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2311

BZOJ 3643 Phi的反函数

欧拉函数+dfs

依然一笑作春温。 481

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

[BZOJ3643] phi的反函数 - 欧拉函数 - dfs

QAQ

whzzt的博客 1929

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

欧拉函数

原文链接:https://zh.m.wikipedia.org/zh/%E6%AC%A7%E6%8B%89%E5%87%BD%E6%95%B0 欧拉函数 本文介绍的是小于或等于n的正整数中与n 互质的数的数目。关于形式为的函数,详见「欧拉函数(复变函数)」。 当n为1至1000的整数时的值 在数论中,对正整数n,欧

把复杂的事情简单描述 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

求逆欧拉函数(arc)

已知欧拉函数计算公式   初始公式:φ(n)=n*(1-1/p1)*(1-1/p2).....*(1-1/pm)    又n=p1^a1*p2^a2*...*ps^as 欧拉函数是积性函数   那么:φ(n)=φ(p1^a1)* φ(p2^a2)........φ(pn^an).       #include<cstdio> #include<...

banghuo2937的博客 382

浅谈欧拉函数

前言 欧拉函数听起来很高大上,但其实非常简单,也是NOIP里的一个基础知识,希望大家看完我的博客能有所理解。 什么是欧拉函数 欧拉函数是小于x的正整数中与x互质的数的个数,一般用φ(x)表示。特殊的,φ(1)=1。 如何计算欧拉函数 通式: φ(x)=x∏ni=1(1−1pi)∏i=1n(1−1pi)\prod_{i=1}^n{(1-\frac{1}{p_i})} φ(1)=1 其...

liuzibujian的博客 4万+

数论欧拉函数

A - Bi-shoe and Phi-shoe Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit Status Practice LightOJ 1370 Description Bamboo Pole-vault is a massively popul

猿的进化 646

我要成为数论king!!!

唯一分解定理 牛牛的幂运算 /* 设a = p^k1 c = p^k2 (0)因为1的幂次永远是1,会使得代码错误,要特判 (1)k1==k2,此时a == c,那么必然有b == d。答案等于n*n (2)k1<k2, (2.1)p<=根号n 爆搜1~根号n 爆搜k1与k2 (2.1.1)k1与k2不互素,即gcd(k1,k2)!=1,那么在他们等于gcd(k1,k2)的时候 答案已经被贡献。 (2.1.1.1)答案怎么贡献?此时我们已经得到k1和k2了,就

Artist's Garden 482

欧拉公式

1.基础公式: 2. 当x为负数时,就取倒数就行了,复数倒数就采用平法差公式

weixin_44715313的博客 663

1.2(1) 欧拉方法

让我们简单思考(ODEs)(1.1)的含义。可以得到以下两条信息:我们知道在一个初值点=处的值,并且给任何函数和时间,我们就能得到微分方程的斜率。这样做的目的是使我们能够估计出在其他点的值,最简单的方法是用线性插值,换句话说,我们通过做这样的近似,来估计的值,当足够小时,结合(1.1), 给出一系列,,,...,其中是步长,我们用表示精确解,的数值近似解,由式(1.3),我们采取 . 这个过程能够持续输出在,...处的近似解。通常我们能够得到一个递归式 这就是著名的欧拉方法。 欧拉方法..

m0_58619772的博客 1319

前向欧拉法、后向欧拉法简介

这里简单介绍一下前向欧拉法和后向欧拉法。 (在百度上没有找到满意的结果,所以在此补充)

the Blog of 等不到天亮丶等时光 6万+

递归牛顿欧拉(正/逆)动力学仿真

递归牛顿-欧拉动力学算法是一种高效的动力学计算方法,它有正/逆两种形式,我们先来看正动力学的形式,也就是给定关节力矩求机器人的运动。下面的算法来自于论文《Lie Group Formulation of Articulated Rigid Body Dynamics》,我们更正了原文中的一处错误。该算法使用了李群的表述,其优点是形式简洁、并有清晰的数学含义。 我们的算法适用于三维空间

robinvista的专栏 1万+
上一篇: Codeforces Round #290 (Div. 2) D
下一篇: TJOI 2017 (Pollard_rho,MR素数测试)
WedsonLin
博客等级 码龄7年 1粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值