HDU 2817 EASY题

#include <iostream>
#include <cstdio>
using namespace std;
const __int64 MOD=200907;

__int64 Power(__int64 a,__int64 b,__int64 m){
	a%=m; __int64 ans=1;
	while(b){
		if(b&1){
			ans=(ans*a)%MOD;
		}
		b=b>>1;
		a=(a*a)%MOD;
	}
	return ans;
}

int main(){
	__int64 a,b,c,k;
	int t;
	scanf("%d",&t);
	while(t--){
		scanf("%I64d%I64d%I64d%I64d",&a,&b,&c,&k);
		if(b-a==c-b){
			__int64 tmp=b-a;
			printf("%I64d
",(a%MOD+((k-1)%MOD)*(tmp%MOD))%MOD);
		}
		else{
			__int64 tmp=b/a;
			printf("%I64d
",(a*Power(tmp,k-1,MOD)%MOD));
		}
	}
	return 0;
}

  

原文地址:https://www.cnblogs.com/jie-dcai/p/3946939.html