2017 ccpc女生專場 1003 Coprime Sequence
阿新 • • 發佈:2017-05-09
style rst des 一個數 output sequence amp efi comm
``Coprime Sequence‘‘ is easy to find because of its restriction. But we can try to maximize the GCD of these integers by removing exactly one integer. Now given a sequence, please maximize the GCD of its elements.
In each test case, there is an integer n(3≤n≤100000) in the first line, denoting the number of integers in the sequence.
Then the following line consists of n integers a1,a2,...,an(1≤ai≤109), denoting the elements in the sequence.
前綴後綴gcd,其實自己中用的是種奇怪的方法A掉的,不過先把這個學上,自己的方法有時間再填。
題意
告訴你N個數,求刪除一個數可以求得最大GCD。
N可能是100000。
思路
這道題其實很簡單,但是想不到這點就很難。
簡單的說就是先預處理,得到每個數字左邊的GCD和右邊的GCD.
- befor(i)代表前i個數字的GCD, 復雜度
O(n*log(n))
- after(i)代表i之後的數字的GCD. 復雜度
O(n*log(n))
ans = max(after(2), befor(1)+after(3), ..., befor(n-2)+after(n), befor(n-1))
;
Coprime Sequence
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)
Total Submission(s): 250 Accepted Submission(s): 145
``Coprime Sequence‘‘ is easy to find because of its restriction. But we can try to maximize the GCD of these integers by removing exactly one integer. Now given a sequence, please maximize the GCD of its elements.
Input The first line of the input contains an integer T(1≤T≤10), denoting the number of test cases.
In each test case, there is an integer n(3≤n≤100000) in the first line, denoting the number of integers in the sequence.
Then the following line consists of n integers a1,a2,...,an(1≤ai≤109), denoting the elements in the sequence.
Output For each test case, print a single line containing a single integer, denoting the maximum GCD.
Sample Input 3 3 1 1 1 5 2 2 2 3 2 4 1 2 4 8
Sample Output 1 2 2
1 #include<iostream> 2 #include<stdio.h> 3 4 #define ff 1000000007 5 6 using namespace std; 7 8 int main() 9 { 10 int t,n,k; 11 scanf("%d",&t); 12 while(t--) 13 { 14 scanf("%d%d",&n,&k); 15 long long ans=0,temp; 16 for(int i = 1; i <= n; i++) 17 { 18 temp=1; 19 for(int j = 1; j <= k; j++) 20 { 21 temp=(temp*i)%ff; 22 } 23 ans=(ans+temp)%ff; 24 } 25 printf("%lld\n",ans%ff); 26 } 27 28 return 0; 29 }
2017 ccpc女生專場 1003 Coprime Sequence