标签:
Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)
Total Submission(s): 882 Accepted Submission(s):
305
1 #include <cstring> 2 #include <cstdio> 3 #include <algorithm> 4 #include <iostream> 5 #define mod 100000007 6 using namespace std; 7 8 int xx(int a,int b) 9 { 10 int c,t; 11 if(a<b) 12 { 13 t=a; 14 a=b; 15 b=t; 16 } 17 while(b) 18 { 19 c=a%b; 20 a=b; 21 b=c; 22 } 23 return a; 24 } 25 26 int main() 27 { 28 int T,i,j,a,b,k,n,m,w; 29 int ai[1005]; 30 long long vis[1005]; 31 scanf("%d",&T); 32 while(T--) 33 { 34 long long sum=0; 35 scanf("%d",&n); 36 memset(vis,0,sizeof(vis)); 37 for(i=0; i<n; i++) 38 { 39 scanf("%d",&ai[i]); 40 } 41 for(i=0; i<n; i++) 42 { 43 for(j=1; j<=1000; j++) 44 if(vis[j]) 45 { 46 vis[xx(ai[i],j)]=(vis[xx(ai[i],j)]+vis[j])%mod; 47 } 48 vis[ai[i]]=(vis[ai[i]]+1)%mod; 49 } 50 for(i=1; i<=1000; i++) 51 if(vis[i]) 52 sum=(sum+(i*vis[i])%mod)%mod; 53 printf("%I64d\n",sum); 54 } 55 }
标签:
原文地址:http://www.cnblogs.com/pshw/p/5351435.html