您的位置:首页 > 其它

POJ 1745

2015-06-10 16:44 225 查看
#include <iostream>
#define MAXN 10005
using namespace std;

int _m[MAXN];
bool dp[MAXN][100];

int main()
{
//freopen("acm.acm","r",stdin);
int n;
int k;
int i;
int j;
cin>>n;
cin>>k;
for(i = 0; i < n; ++ i)
{
cin>>_m[i];
}

for(i = 0; i < n; ++ i)
{
_m[i] %= k;
while(_m[i] < 0)
{
_m[i] += k;
}
}

dp[0][_m[0]] = true;

for(i = 1; i < n; ++ i)
{
for(j = 0; j < k; ++ j)
{
if(dp[i-1][j])
{
dp[i][(j+_m[i])%k] = true;
int tem;
tem = j-_m[i];
tem %= k;
while(tem < 0)
{
tem += k;
}
dp[i][tem] = true;
}
}
}

if(dp[n-1][0])
{
cout<<"Divisible"<<endl;
}
else
{
cout<<"Not divisible"<<endl;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: