uva 10036 Problem C: Divisibility

來源:互聯網
上載者:User

標籤:style   blog   http   color   io   os   ar   for   sp   

題意:能否在一個整數序列的每相鄰的兩項之間添加一個加減號,使得最終結果能被一個給定整數K<=100整除。

dp[i][j]表示第i個數取餘k為j的布爾值。

 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #define maxn 20000 5 using namespace std; 6  7 int t; 8 int n,k; 9 int a[maxn];10 bool flag;11 bool dp[maxn][110];12 13 int main()14 {15     scanf("%d",&t);16     while(t--)17     {18         memset(dp,false,sizeof(dp));19         scanf("%d%d",&n,&k);20         for(int i=0; i<n; i++)21         {22             scanf("%d",&a[i]);23         }24         dp[0][abs(a[0])%k]=true;25         for(int i=1; i<n; i++)26         {27             for(int j=0; j<k; j++)28             {29                 if(dp[i-1][j])30                 {31                     dp[i][(j+k+abs(a[i]))%k]=true;32                     dp[i][((j+k-abs(a[i]))%k+k)%k]=true;33                 }34             }35         }36         if(dp[n-1][0]) printf("Divisible\n");37         else printf("Not divisible\n");38     }39     return 0;40 }
View Code

 

uva 10036 Problem C: Divisibility

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.