首页 > 其他 > 详细

NOIP的板子们 (未完待续)

时间:2017-08-09 09:55:01      阅读:271      评论:0      收藏:0      [点我收藏+]

一、数论

技术分享
void gcd(int a,int b,int &d,int &x,int &y)
{
    if(!b) { d=a; x=1; y=0; }
    else { gcd(b,a%b,d,y,x);  y-=x*(a/b); }
}
(扩展)欧几里得

 

技术分享
//解同余方程 ax≡c(mod b)
//转化为ax-by=c 
void solve()
{
    gcd(a,b,g,x0,y0);  
    if(c%g) printf("no solution");
    x=c/g*x0; y=c/g*y0;
    printf("任意一组解:%d",x);
    a/=g; b/=g;
    while(x-b>0) { x-=b; y+=a; }
    printf("最小x正整数解:%d",x); 
}
同余方程

 

扩展欧几里得、同余方程 解析:http://www.cnblogs.com/TheRoadToTheGold/p/6645383.html

 

技术分享
int quickmul(int a,int b,int p)
{
    int ans=1;
    for(;b;b>>=1,a=a*a%p)
     if(b&1) ans=ans*a%p;
    return ans;
}  
快速幂

 

NOIP的板子们 (未完待续)

原文:http://www.cnblogs.com/TheRoadToTheGold/p/7323273.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!