zoukankan      html  css  js  c++  java
  • Loj#161. 乘法逆元 2

    马上就吃饭了写个题解

    这个题就是说用了阶乘求逆元的思想
    f[i] 前i项a[i]乘积的逆元
    真是好题啊

    #include<bits/stdc++.h>
    #define int long long
    using namespace std;
    int read(){
        int w=1,q=0;char ch=' ';
        while(ch!='-'&&(ch<'0'||ch>'9'))ch=getchar();
        if(ch=='-')w=-1,ch=getchar();
        while(ch>='0'&&ch<='9')q=q*10+ch-'0',ch=getchar();
        return w*q;
    }
    const int N = 5e7+5;
    int n, mod = 1e9+7;
    int a[N];
    inline int ksm(int a, int b) {
    	int ans = 1, base = a;
    	while(b) {
    		if(b & 1) ans *= base, ans %= mod;
    		base *= base, base %= mod;
    		b >>=1;
    	}
    	return ans % mod;
    }
    int f[N], g[N];
    signed main() {
    	cin>>n;
    	for(int i = 1; i <= n; i++) 
    		a[i] = read();
    	int ans = 0;
    	g[0] = 1;
    	for(int i = 1; i <= n ; i++) g[i] = g[i - 1] * a[i] % mod;
    	f[n] = ksm(g[n], mod - 2);
    	for(int i = n ; i; i --) f[i - 1] = f[i] * a[i] % mod;
    	for(int i = 1; i <= n; i++) {
    		ans *= 998244353, ans %= mod;
    		ans += (f[i] * g[i - 1]), ans %= mod;
    	}
    	cout<<ans;
    	return 0;
    }
    
    
  • 相关阅读:
    三、Pandas入门
    二、NumPy入门
    jQuery模拟angular的数据绑定
    ajax里的getJSON的用法
    SQL中关于传递参数为Null的示例
    原生ajax示例
    页面自增加示例
    angular1数据绑定例子
    angular2 工程目录结构介绍
    angular js环境配置
  • 原文地址:https://www.cnblogs.com/skkyk/p/13933205.html
Copyright © 2011-2022 走看看