2 条题解
-
14
中国剩余定理
常用来解一元线性同余方程组
一般从这个问题引入,某物品三三数之余二,五五数之余三,七七数之余二。问物几何?
写成方程组的形式就是求解
首先,若为原方程的一个解,那么,也是一个解
解上述方程组其实首先需要解以下3个方程,这里有点线性代数的意思。
记上述三组的解记为
则原方程的解为 ++
问题的关键显然是求上述三组解。 上述三组解是这样求的,先来看第一个。
,所以设,那么,这里容易求出是,实际也能看出就是逆元。
求出以后,,那么第一个方程组的一个特解就出来了。
同理求出其余的两个方程组的特解分别是。
则原方程的解为 ,所以这里就求出了23.
因此从这里也能看出线性同余方程组的求解方式,方法就是。
首先还是按照刚才的方式分出多个方程组来,求出每一个的,最后求和。
- 首先求出
- 对于每一组方程我们按照上面的例题思路来求解,设,那么紧接着我们需要求出,求出这个。
- 那么最终这个方程组的解就是,回想刚才不就是,所以是,对应上面的.
- 然后循环求和,并且求和的时候对取余得到答案。
本题实际就是
根据刚才我们的方法,首先计算第一个式子的时候,需要算出 应该就是,关于的逆元是,所以也就是然后乘以,得到第一组的答案,类似其余的答案就是,.
最终答案就是 算的是距离开始以后多少,所以减去,同时避免出现负数所以加以后在取余。
如果算下来答案是,记得输出而不是输出
cin >> p >> e >> i >> d; lcm = 23 * 28 * 33; ans = (5544 * p + 14421 * e + 1288 * i - d + lcm) % lcm; cnt++; if (ans == 0) ans = lcm; cout << ans;
-
-3
写题解请注意 鼓励大家写题解,但注意题解格式。
题解一定要有思路解析或代码注释,能否让别人理解你的思路
也是你的能力的检验,不要只放无意义的代码给大家复制,那就失去了做题的初心。
给代码两端加上这个会舒服一些
```cpp
你的代码
```
</span>
这个点在键盘的左上角tab上面那个键,注意切换输入法
#include<iostream> using namespace std; int main() { int n; cin>>n;//这是一个注释 return 0; }
请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。
抄袭题解一经发现直接取消成绩。
题解被删除的可能
- 代码不符合格式规范
- 没有思路讲解或者没有注释,
- 无意义的题解
大家携手共同维护一个良好的编程环境,如果一经发现,多次作乱。可能会被管理员拉黑,请注意,一旦拉黑即失去登陆资格。
- 1
信息
- ID
- 192
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 292
- 已通过
- 122
- 上传者