比赛网址:https://ac.nowcoder.com/acm/contest/19483
目录
A:智乃酱的区间乘积(费马小定理)
给定一个长度大小为N的正整数数组,查询M轮,每次问一个区间所有元素的连续乘积。
由于这个答案可能很大,你只用输出结果对1e9+7取余数后的结果即可。
知识点:费马小定理
(a/b)%mod=a*pow(b,mod-2);
快速幂模板:
ll fp(ll x,ll y)
{
ll ans=1;
ll base=x;
while(y)
{
if(y&1) ans=ans*base%mod;
y>>=1;
base=base*base%mod;
}
return ans;
}
思路:
求前缀积,再sum[j]/sun[i]*arr[i],处理除法时用上费马小定理和快速幂。
AC代码:
#include<iostream>
#include<cmath>
using namespace std;
typedef long long ll;
const int N=1e5+5;
const int mod&#