码迷,mamicode.com
首页 > 其他好文 > 详细

uva 10036 Problem C: Divisibility

时间:2014-10-13 22:40:57      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   ar   for   sp   

题意:能否在一个整数序列的每相邻的两项之间添加一个加减号,使得最终结果能被一个给定整数K<=100整除。

dp[i][j]表示第i个数取余k为j的布尔值。

bubuko.com,布布扣
 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

标签:style   blog   http   color   io   os   ar   for   sp   

原文地址:http://www.cnblogs.com/fanminghui/p/4022937.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!