洛谷 P3811 【模板】乘法逆元
来源:互联网 发布:淘宝晚上收货时间 编辑:程序博客网 时间:2024/06/10 11:24
题目背景
这是一道模板题
题目描述
给定n,p求1~n中所有整数在模p意义下的乘法逆元。
输入输出格式
输入格式:
一行n,p
输出格式:
n行,第i行表示i在模p意义下的逆元。
输入输出样例
输入样例#1:
10 13
输出样例#1:
1
7
9
10
8
11
2
5
3
4
说明
1 \leq n \leq 3 \times 10 ^ 6, n < p < 20000528 1≤n≤3×10
6
,n
//虽然加了ZlycerQan的各种骚优化 还是T掉一个点 #include<iostream>#include<cstring>#include<cstdio>using namespace std;typedef long long LL ;int n,p;inline void Fast_Pow(LL a,int b){ LL ret=1; while(b){ if(b&1) ret=(ret*a)%p; a=(a*a)%p,b>>=1; } printf("%lld\n",ret); return ;}int Main(){ scanf("%d%d",&n,&p); for(register int i=1;i<=n;++i) Fast_Pow(i,p-2); return 0;}int Aptal_is_My_Son=Main();int main(int argc,char *argv[]){ ; }
AC代码:
#include<iostream>#include<cstring>#include<string>#include<cstdio>using namespace std;typedef long long LL ;const int MAXN = 3*1e6+5;LL inv[MAXN];//线性求逆元 1->N Mod P 意义下的所有数对应的逆元值//递推式:inv[i] = (P - P/i)*inv[P%i]%P;-----证明略//inv[i]表示i在Mod P 意义下的逆元 void pre_inv(){ int p,n; inv[1]=1; cin>>n>>p; cout<<1<<endl; for(int i=2;i<=n;i++) inv[i]=(LL)(p-p/i)*inv[p%i]%p,printf("%lld\n",inv[i]);}int main(){ pre_inv(); return 0;}
阅读全文
0 0
- 洛谷 P3811 【模板】乘法逆元
- 洛谷 P3811 【模板】乘法逆元
- [P3811][模板]乘法逆元
- 乘法逆元模板
- 乘法逆元 模板
- 乘法逆元模板
- [模板]乘法逆元
- 【模板】乘法逆元
- [模板]乘法逆元
- ACM 乘法逆元 模板
- 51nod 1256 乘法逆元 (模板)
- HDU 3037:Saving Beans Lucas模板题+乘法逆元
- Loj-110乘法逆元(线性模板题)
- codeforces 300C 乘法逆元 (乘法逆元模为素数的模板)
- 乘法逆元
- 乘法逆元
- 关于乘法逆元
- 乘法逆元
- promise对象的简单用法
- 【NOIP模板】 gcd & lcm
- 嚼得菜根做得大事·《菜根谭》·六
- 利用Java的反射、泛型以及动态参数实现JDBC工具类
- 第11章-img特征,vertical-align,cursor,opacity
- 洛谷 P3811 【模板】乘法逆元
- Ant * 星号通配符
- (HihoCoder
- Java练习
- HDU 4300 Clairewd’s message
- 安装win10+ubuntu16.04双系统无法进入桌面问题
- php正则表达式去掉超链接
- 笔记
- 字符串的排列