首页 > 其他分享 >P3811 【模板】模意义下的乘法逆元

P3811 【模板】模意义下的乘法逆元

时间:2024-02-12 12:22:06浏览次数:36  
标签:read ll int P3811 逆元 inv 模板 mod

原题链接

题解

由于时间限制过于严苛,遂采用线性递推方式
\(p=k·i+b\) , \((1\leqslant b <r<p)\)
\(k·i+b=0\) \((mod\ p)\)
同时乘上 \(i^{-1}\ b^{-1}\)
\(k·b^{-1}+i^{-1}=0\ (mod\ p)\)
\(i^{-1}=-k·b^{-1}\ (mod\ p)\)
\(i^{-1}=(-[\frac{p}{i}]+p)+(p\ mod\ i)^{-1}\)

code,不优化过不了

#include<bits/stdc++.h>
#define ll long long
using namespace std;

ll inv[3000005] = {0};

inline void read(ll &x) {
    x = 0;
    ll flag = 1;
    char c = getchar();
    while(c < '0' || c > '9') {
        if(c == '-') flag = -1;
        c = getchar();
    }
    while(c >= '0' && c <= '9') {
        x = (x << 3) + (x << 1) + (c ^ 48);
        c = getchar();
    }
    x *= flag;
}

inline void write(ll x) {
    if(x < 0) {
        putchar('-');
        x = -x;
    }
    if(x > 9)
        write(x / 10);
    putchar(x % 10 + '0');
}

int main() {
    ll n, p;
    read(n); read(p);
    inv[1] = 1;
    puts("1");
    for(int i = 2; i <= n; i++) {
        inv[i] = (-p/i + p) * inv[p % i] % p;  // Keep the original logic
        write(inv[i]);
        putchar('\n');
    }
    return 0;
}

标签:read,ll,int,P3811,逆元,inv,模板,mod
From: https://www.cnblogs.com/pure4knowledge/p/18013763

相关文章

  • 各大排序的模板
    1.冒泡排序 1for(i=n;i>=1;--i)2{3for(j=1;j<=i;++j)4{5if(a[j]>a[j+1])6{7swap(a[j],a[j+1]);8}9}10}   2.快速排序1.懒人函数 1sort(a+1,a+n+1);   2.正常的1vo......
  • grafana模板参考
     空的,把面板都删除了{"__inputs":[{"name":"DS_PROMETHEUS","label":"Prometheus","description":"","type":"datasource","pl......
  • Link Cut Tree模板(从别人那里拿的)
    可以通过这道题#include<bits/stdc++.h>#defineRregisterint#defineIinlinevoid#defineGif(++ip==ie)if(fread(ip=buf,1,SZ,stdin))#definelcc[x][0]#definercc[x][1]usingnamespacestd;constintSZ=1<<19,N=3e5+9;charbuf[SZ],*ie=buf+SZ,*ip=......
  • BootstrapBlazor 模板适配移动设备使用笔记
    项目模板BootstrapBlazorApp模板为了方便大家利用这套组件快速搭建项目,作者制作了项目模板(ProjectTemplates),使用dotnetnew命令行模式,使用步骤如下:安装项目模板dotnetnewinstallBootstrap.Blazor.Templates::8.0.1创建工程dotnetnewbbapp官网教程https:......
  • Liquid模板引擎简单使用
    最近在写一个配置表导出工具,自动生成代码那边会用到模板引擎,所以就熟悉了下Liquid的使用。 需要用到一个DotLiquid的库usingDotLiquid;varlqTemplate=Template.Parse(templateContent);vartemplateHash=newHash();//todo逻辑部分using(varsw=newStrea......
  • 设计模式-模板方法模式(Template Method Pattern)
    #模板方法模式(TemplateMethodPattern)-记忆关键字:模板方法-定义:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤-类型:行为型-![UML类图](./design-pattern.png)##1.涉及的角色1)Abstr......
  • P4721 【模板】分治 FFT
    最具经济性的写法:\(\mathcalO(n^2)\)暴力拿下\(80\)分,遂跑路。一题多解了,分两部分:分治和多项式求逆。分治考虑cdq分治,每次把\(f_{l\dotsmid}\)和\(g_{1\dotsn-1}\)卷起来,贡献直接加到\(f_{mid+1\dotsr}\)里,要注意一下顺序,先递归左区间,再算当前区间,最......
  • TitanIDE v2.8.0正式发布,模板市场来袭!
    TitanIDEv2.8.0版本正式发布,模板市场中内置40+模版!什么是TitanIDETitanIDE,云端IDE,作为数字化时代研发体系不可或缺的一环,和企业建设好的云服务具有很高的互操作性。秉承“安全、高效、体验”的原则,连接研发体系的各个信息孤岛。Jira、GitLab、Jetbrains全家桶、AndroidStudio、V......
  • 浅蓝色小清新说说文章类个人网站模板代码
    浅蓝色小清新说说文章类织梦dedecms个人博客模板采用DIV+CSS自适应语言制作的文章信息网站模板。整个网站版面宽度为1000px宽度,页面主色调为蓝色,整体大气简洁。浅蓝色小清新说说文章博客模板适用于经典说说、伤感说说、个性说说、搞笑说说、爱情说说等各种QQ说说心情短......
  • 浅蓝色小清新说说文章类个人网站模板代码
    浅蓝色小清新说说文章类织梦dedecms个人博客模板采用DIV+CSS自适应语言制作的文章信息网站模板。整个网站版面宽度为1000px宽度,页面主色调为蓝色,整体大气简洁。浅蓝色小清新说说文章博客模板适用于经典说说、伤感说说、个性说说、搞笑说说、爱情说说等各种QQ说说心情短语......