1 条题解
-
0
C :
#include<stdio.h> #define N 200907 int main() { long long a,b,c,d,tmp; int i,j,k,n,m; while(scanf("%d",&n)!=EOF) { for(m=0;m<n;m++) { scanf("%lld%lld%lld%d",&a,&b,&c,&k); if(b-a==c-b) { tmp=(b-a)%N; d=((k-3)%N*tmp+c%N)%N; } else if(b/a==c/b) { tmp=(c/b)%N; d=1; k--; while(k!=0) { j=k%2; if(j==1) { d*=tmp; d%=N; } tmp=(tmp*tmp)%N; k/=2; } d=d*(a%N)%N; } printf("%lld\n",d); } } return 0; }
C++ :
#include<stdio.h> #define MOD 200907 long long modular_exponent(long long a,long long b,int n){ //a^b mod n long long ret=1; for (;b;b>>=1,a=(long long)(((long long)a)*a%n)) if (b&1) ret=(long long)(((long long)ret)*a%n); return ret; } int main() { double a,b,c; int T; int k; scanf("%d",&T); while(T--) { scanf("%lf%lf%lf%d",&a,&b,&c,&k); if(a+c==2*b) { long long a1=(long long )a; long long d=(long long )(b-a); int ans=(a1%MOD+((k-1)%MOD)*(d%MOD))%MOD; printf("%d\n",ans); } else { long long a1=(long long )a; long long t1=(long long )(a1%MOD); double q1=(b/a); long long q2=(long long)q1; long long q=(long long)(q2%MOD); long long tmp=modular_exponent(q,k-1,MOD); int ans=(t1*tmp)%MOD; printf("%d\n",ans); } } return 0; }
- 1
信息
- ID
- 2094
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者