首页 > 代码库 > 【noi 2.6_747】Divisibility(DP)

【noi 2.6_747】Divisibility(DP)

这题题意与前面的“判断整除”重复了。具体解释可看我这篇的博文。

http://www.cnblogs.com/konjak/p/5936738.html

技术分享

 1 #include<cstdio> 2 #include<cstdlib> 3 #include<cstring> 4 #include<iostream> 5 using namespace std; 6 #define N 10010 7 #define K 110 8 int a[N],f[N][K]; 9 10 int main()11 {12     int i,j,n,k;13     scanf("%d%d",&n,&k);14     for (i=1;i<=n;i++)15       scanf("%d",&a[i]),a[i]%=k;16     f[0][0]=1;17     for (j=1;j<k;j++) f[0][j]=0;18     for (i=1;i<=n;i++)19      for (j=0;j<k;j++)20      {21        int x=(j-a[i]+k)%k,y=(j+a[i]+k)%k;22        f[i][j]=f[i-1][x]|f[i-1][y];23      }24     if (f[n][0]) printf("Divisible\n");25     else printf("Not divisible\n");26     return 0;27 }

 

【noi 2.6_747】Divisibility(DP)