这次A的题全是亮哥敲的,丧失也出了不少思路,基本就我在躺,得让自己的思路和代码能力迅速提高起来,尽自己最大的力量吧。
比赛后又敲了一遍。
A.给前三个数求第k项,需判断是等差还是等比数列。
#include<iostream> #include<stdio.h> using namespace std; const long long mod = 200907; long long a[4]; long long sort_pow(long long k, long long m){ if(k == 0) return 1; if(k % 2){ long long uu = sort_pow(k/2, m); return (uu*uu*m) % mod; }else{ long long uu = sort_pow(k/2, m); return (uu*uu) % mod; } } int main(){ long long t; scanf("%I64d", &t); while(t--){ for(long long i = 0; i < 3; i++){ scanf("%I64d", &a[i]); } long long k; scanf("%I64d", &k); if(a[2] - a[1] == a[1] - a[0]){ printf("%I64d\n", ((a[2] -a[1]) % mod *(k-1)+a[0]) %mod); }else{ printf("%I64d\n", (a[0] * sort_pow(k-1,a[1]/a[0]))% mod); } } }