乘法取模优化

inline long long multi(long long x,long long y,long long mod)//mod long long 
{
    long long tmp=(x*y-(long long)((long double)x/mod*y+0.5)*mod);
    return tmp<0 ? tmp+mod : tmp;
}
int pdt(int x,int y,int mods) { //汇编优化,易出锅,能不用尽量不用,不知道什么情况下会跑崩,一般没事
    int ret; 
    __asm__ __volatile__ ("\tmull %%ebx\n\tdivl %%ecx\n":"=d"(ret):"a"(x),"b"(y),"c"(mods)); 
    return ret; 
}

 

posted on 2018-09-09 11:40  scau_bi  阅读(836)  评论(0编辑  收藏  举报

导航