您的位置:首页 > 其它

*divisibility

2020-02-17 12:18 405 查看

Source Code

Problem: 1745 User: eth1
Memory: 280K Time: 360MS
Language: C++ Result: AcceptedSource Code
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int f[10005],flag,n,k;
bool ans[2][105];
int main()
{
int a;
cin>>n>>k;
for(int i=0;i<n;i++)
{
cin>>a;
f[i]=abs(a)%k;
}
for(int i=0;i<k;i++) ans[0][i]=0;
ans[0][f[0]]=1;
for(int i=1;i<n;i++)
{
int t=i%2;
int tt=(t+1)%2;
for(int j=0;j<k;j++) ans[t][j]=0;
for(int j=0;j<k;j++)
{
if(ans[tt][j])
{
ans[t][(j+f[i])%k]=1;
ans[t][abs(j-f[i])%k]=1;
}
}
}
if(ans[(n-1)%2][0]) cout<<"Divisible"<<endl;
else cout<<"Not divisible"<<endl;
return 0;
}/*******************************************************/ps : 滚动数组利用的就是前后两者之间的关系.

转载于:https://www.cnblogs.com/eth0/archive/2011/05/09/2041289.html

  • 点赞
  • 收藏
  • 分享
  • 文章举报
aimei3954 发布了0 篇原创文章 · 获赞 0 · 访问量 273 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: