【题解&总结】 「NOI2018」屠龙勇士

博客详细介绍了如何解决NOI2018中「屠龙勇士」问题,通过转换题目,利用平衡树或线段树预处理数据,将问题转化为求解同余方程组。通过分析Ai和pi的关系,使用扩展欧几里得算法求解特解,并给出最终的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目大意

在这里插入图片描述

题解

考虑把题目转换一下,假设我们把杀每条龙所要用的剑求出来了(用平衡树或线段树预处理一下),设当前的剑的攻击力为 A i A_i Ai
那么题目就可以转换为:
找到一个最小的 x x x ,使得对于 ∀ i ∈ [ 1 , n ] \forall i\in[1,n] i[1,n] ,都有 A i ⋅ x ≡ a i   ( m o d   p i ) A_i\cdot x\equiv a_i\ (mod\ p_i) Aixai (mod pi)
发现这与excrt很像,我们考虑化成其一般形式。
但我们发现 A i A_i Ai p i p_i pi 不一定互质,因此我们就不能用普通求逆元的方式转换。我们考虑把这个式子拆开: A i ⋅ x + p i ⋅ y = a i A_i\cdot x+p_i\cdot y=a_i Aix+piy=ai ,然后用扩欧求出其一组特解 x 0 x_0 x0 y 0 y_0 y0 。设

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值