中国剩余定理----51nod1079
模板题 链接51nod1079
这道题是中国剩余定理的模板题,但是这道题范围不大,还可以暴力求解,只是复杂度高些。
下面说下孙子定理(中国剩余定理)
定理详述参见百度百科
求法
要求出的是----x m数组中 存的是x与其取余的数 p数组中存的是x于m[i]取余得到的余数
我们先求出 M------就是m数组种连续乘起来
再求出 f 数组------就是M / m[ i ] (f [ i ] 也就是除了m[ i ]以外的m数组乘起来)
再求出 t 数组------t [ i ] 是 f [ i ]在模m[ i ]意义下的逆元(乘法逆元的求法)
再将t[ i ] * p[ i ] * f[ i ] 从1-n累加起来(在模M的情况下)
参见代码和注释
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
const int maxn=1e4+7;
const int INF=0x3f3f3f3f;
typedef long long ll;
ll p[maxn],m[maxn],f[maxn],t[maxn];
ll n,k,M;
ll pow_mod(ll x,ll n,ll mod){ll res=1;while(n){if(n&1)res=(x*res)%mod;x=(x*x)%mod;n>>=1;}return (res+mod)%mod;
}
int main(){scanf("%lld",&n);M=1;for(int i=1;i<=n;i++){scanf("%lld%lld",&m[i],&p[i]);M*=m[i];//连乘求出M}for(int i=1;i<=n;i++){f[i]=M/m[i];//求出f数组t[i]=pow_mod(f[i],m[i]-2,m[i]);//费马小定理求乘法逆元}for(int i=1;i<=n;i++){k=(k+p[i]*t[i]*f[i])%M;//注意 累加是在模M的情况下累加}printf("%lld\n",k);return 0;
}
中国剩余定理----51nod1079相关推荐
- 中国剩余定理(孙子定理)的证明和c++求解
<孙子算经>里面的"物不知数"说的是这样的一个题目:一堆东西不知道具体数目,3个一数剩2个,5个一数剩3个,7个一数剩2个,问一共有多少个. 书里面给了计算过程及答案: ...
- 解题报告(十三)中国剩余定理(ACM / OI)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...
- 中国剩余定理(Chinese Remainder Theorem)
中国剩余定理 民间传说着一则故事--"韩信点兵". 秦朝末年,楚汉相争.一次,韩信将1500名将士与楚王大将李锋交战.苦战一场,楚军不敌,败退回营,汉军也死伤四五百人,于是韩信整顿 ...
- 【中国剩余定理】POJ 1006 HDU 1370 Biorhythms
题目链接: http://poj.org/problem?id=1006 http://acm.hdu.edu.cn/showproblem.php?pid=1370 题目大意: (X+d)%23=a ...
- 中国剩余定理matlab非互质,中国剩余定理模板(互质版和非互质版)
互质版: #include #include #include using namespace std; typedef __int64 int64; int64 a[15],b[15]; int64 ...
- POJ2891 Strange Way to Express Integers【扩展中国剩余定理】
题目大意 就是模板...没啥好说的 思路 因为模数不互质,所以直接中国剩余定理肯定是不对的 然后就考虑怎么合并两个同余方程 \(ans = a_1 + x_1 * m_1 = a_2 + x_2 * ...
- 韩信点兵-中国剩余定理(练习)
http://acm.nyist.net/JudgeOnline/problem.php?pid=34提交地址 韩信点兵-中国剩余定理. 题目能够用枚举非常easy的做出来,在这里写是为了运用一下刚刚 ...
- hdu 3579(中国剩余定理非互质)
解题思路:这道题目因为不一定是互质的,所以直接套用中国剩余定理肯定是错的,,这里采用的是非互质的方法...之前的博客上面有详细的证明过程和算法,这里就不罗嗦了..但是这道题目在输出的时候有特定的要求, ...
- hdu 1573(中国剩余定理非互质情况)
解题思路:这道题目有可能a[i],两两不互质,所以直接用中国剩余定理肯定是不对的..这里考虑非互质的情况 问题描述:给出bi,ni的值,且n1, n2, n3,-, ni两两之间不一定互质,求Res的 ...
- poj 1006(中国剩余定理)
中国剩余定理: <孙子算经>中有"物不知数"问题:"今有物不知其数,三三数之余二 ,五五数之余三 ,七七数之余二,问物几何?"答为"23& ...
最新文章
- 揭富人与穷人21个不同思维 看富豪如何脱颖而出
- 将word文档按分页另存为多个word文件的VBA代码
- datanode无法启动问题
- Unity3D - UGUI的手动搭建
- 使用form上传文件到application server的另一种办法
- rx.observable_在Spring MVC流中使用rx-java Observable
- Java 大小写转换
- js中eval 详解
- 国内四家物联网实时操作系统浅析
- linux中进程unit是什么意思,Linux系统之进程及服务的控制
- mysql引擎互转问题
- 一个设置提升Microsoft Store下载速度
- ubuntu安装阿里源
- 抖音短视频吃鸡戏精野生脆脆如何上的热门
- 从吴军的书《格局》总结出的37条为人方法论
- 二相混合式步进电机开环细分控制simulink仿真模型
- 第一章 C语言编程(Ivor Horton)
- 超轻量级通用人脸检测模型
- 工业工厂三维可视化设备3D建模展示
- 分类-动态渲染左侧的一级分类列表