NOIP2012提高组 同余方程
来源:互联网 发布:多邻国提醒连接网络 编辑:程序博客网 时间:2024/06/01 08:06
这道题是一道比较经典的水题,重点在于理解同余方程。
只需利用数论的定理就能够很轻松的解决。
参见下列代码:
#include<cstdio>#include<cstring>#include<iostream>#include<cstdlib>using namespace std;int exgcd(int a,int b,int &x,int &y){ if(b==0){x=1,y=0;return a;} int xx,yy; int g=exgcd(b,a%b,xx,yy); x=yy; y=xx-(a/b)*yy; return g; }void insolve(){ int a,b,c,x,y,k; scanf("%d%d",&a,&b); //ax+by==1 b=-b,c=1; //转化为ax-by==c; int g=exgcd(a,b,x,y); //得到一组解 //此题保证有解,不考虑c%g!=0 int x0=c/g*x,y0=c/g*y; //接下来只需考虑如何得到最小正整数解 //通式:x0+k*b/g; int exb=b/g; k=-x0/exb; if(exb>0) if(k*exb<-x0) k++; if(exb<0) if(k*exb<-x0) k--; printf("%d\n",x0+k*exb); }int main(){ insolve(); return 0;}
0 0
- NOIP2012提高组 同余方程
- 【NOIP2012提高组】同余方程 (扩展欧几里得算法)
- NOIP2012 同余方程
- 【noip2012】同余方程
- NOIP2012 同余方程
- noip2012同余方程
- 【NOIP2012】同余方程
- [NOIP2012] 同余方程
- NOIP2012 同余方程
- [noip2012]: 同余方程
- NOIP2012同余方程
- [NOIP2012]同余方程
- [NOIP2012]同余方程
- 【Noip2012】同余方程
- NOIP2012 同余方程
- NOIP2012 同余方程 题解
- noip2012 同余方程 exgcd
- [noip2012]同余方程 题解
- 时间复杂度和空间复杂度
- 51nod 1090 3个数和为0
- hdu oj从1000-1001-1002
- JMM主内存与工作内存交互
- 常用开发工具的API文档大全
- NOIP2012提高组 同余方程
- Linux Shell 通配符、元字符、转义符使用实例介绍
- 用pandas分析百万电影数据
- 51nod 1091 线段的重叠
- ACdream 1084寒假安排 (算术基本定理)
- toolbar整理
- Unity3D开发小贴士(三)愉快的使用Lua开发
- 51nod 1092 回文字符串
- 51nod 1094 和为k的连续区间