乘法取模优化

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; 
}

猜你喜欢

转载自www.cnblogs.com/bibibi/p/9613151.html
今日推荐