暫時不會最佳化的演算法,以後有時間在完善吧。

來源:互聯網
上載者:User

標籤:des   http   strong   io   for   問題   

D - Mutiples on a circle Time Limit:1000MS      Memory Limit:65535KB      64bit IO Format:%I64d & %I64uSubmit Status

Description

Tom has a necklace with n jewels. There is a number on each jewel. Now Tom wants to select a wonderful chain from the necklace. A chain will be regarded wonderful if the wonderful value of the chain is a multiple of a key number K. Tom gets the wonderful value using this way:He writes down the number on the chain in clockwise order and concatenates them together. In this way, he gets a decimal number which is defined as the wonderful value. 
For example, consider a necklace with 5 jewels and corresponding numbers on the jewels are 9 6 4 2 8 (9 and 8 are in neighborhood). Assume we take K=7, then we can find that only five chains can be multiples of K. They are 42, 28, 896, 42896 and 89642. 

Now Tom wants to know that how many ways he can follow to select a wonderful chain from his necklace. 

Input

The input contains several test cases, terminated by EOF. 
Each case begins with two integers n( 1 ≤ n ≤ 50000), K(1 ≤ K ≤ 200),the length of the necklace and the key number. 
The second line consists of n integer numbers, the i-th number a i(1 ≤ a i ≤ 1000) indicating the number on the ith jewel. It’s given in clockwise order. 

Output

For each test case, print a number indicating how many ways Tom can follow to select a wonderful chain. 

Sample Input

5 79 6 4 2 8  

Sample Output

5 舉一個例子:7開始的話就有:它是一個環,首尾相接的。7 79 796 7964 79642 796428 7964285  思路沒問題,演算法還不會最佳化,需要繼續學習。窮舉完所有可能然後一一排除,數組多了複雜度就很大。每一個都是N(N+1)/2總共要做N*(N+1)*N/2必然逾時。。。
#include<stdio.h>main(){int x[100008];int n,k,i,s,sum,m,z,t;while(scanf("%d %d",&n,&k)!=EOF){z=0;for(i=1;i<=n;i++){scanf("%d",&x[i]);}for(i=n+1;i<=2*n;i++){x[i]=x[i-n];}for(m=1;m<=n;m++){sum=x[m];if(sum%k==0)z++;for(i=1;i<n;i++){sum=sum*10+x[m+i];if(sum%k==0)z++;}}printf("%d\n",z);}}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.