1 条题解
-
0
#include<bits/stdc++.h> using namespace std; typedef long long LL; const LL P=1e9+7,K=998244353; inline LL read() { LL x=0, f=1;char ch=getchar(); for(;ch<'0' || ch>'9';ch=getchar())if(ch=='-')f=-1; for(;ch>='0' && ch<='9';ch=getchar())x=x*10+(ch&15); return x*f; } LL qpow(LL a,LL b,LL c) { LL ans=1%c;a=a%c; for(;b;b=(b>>1)) { if(b&1)ans=(ans*a) %c; a=(a*a)%c; } return ans; } LL inv(LL a,LL p) { return qpow(a,p-2,p); } int main() { LL n=read(); LL ki=qpow(K,n,P),k_1=inv(K,P),ans=0,a; for(int i=1;i<=n;i++) { a=read(); ki=ki*k_1%P; ans=(ans+ki*inv(a,P)%P)%P; } printf("%lld\n",ans); return 0; }#include<bits/stdc++.h> using namespace std; typedef long long LL; const LL P=1e9+7,K=998244353; inline LL read() { LL x=0, f=1;char ch=getchar(); for(;ch<'0' || ch>'9';ch=getchar())if(ch=='-')f=-1; for(;ch>='0' && ch<='9';ch=getchar())x=x*10+(ch&15); return x*f; } void exgcd(LL a,LL b,LL& d,LL& x,LL& y) { if(a==0){x=0;y=1;d=b;} else { LL tx,ty;exgcd(b%a,a,d,tx,ty); x=ty-(b/a)*tx; y=tx; } } LL inv(LL a,LL p) { LL d,x,y;exgcd(a,p,d,x,y); return (x%p+p)%p; } LL qpow(LL a,LL b,LL c) { LL ans=1%c;a=a%c; for(;b;b=(b>>1)) { if(b&1)ans=(ans*a) %c; a=(a*a)%c; } return ans; } int main() { LL n=read(); LL ki=qpow(K,n,P),k_1=inv(K,P),ans=0,a; for(int i=1;i<=n;i++) { a=read(); ki=ki*k_1%P; ans=(ans+ki*inv(a,P)%P)%P; } printf("%lld\n",ans); return 0; }
- 1
信息
- ID
- 394
- 时间
- 500ms
- 内存
- 512MiB
- 难度
- 8
- 标签
- (无)
- 递交数
- 168
- 已通过
- 32
- 上传者