poj1745
2015-09-11 21:18
351 查看
链接:点击打开链接
题意:给出N个数,这N个数中每个数必须用1次,做加减运算,求最后结果是否能整除K
代码:
题意:给出N个数,这N个数中每个数必须用1次,做加减运算,求最后结果是否能整除K
代码:
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <stdlib.h> using namespace std; int dp[10005][105],s[10005]; //dp[i][j]代表前i个数做运算后余数是否等于j int main(){ int n,k,i,j; while(scanf("%d%d",&n,&k)!=EOF){ for(i=0;i<n;i++){ scanf("%d",&s[i]); s[i]=abs(s[i])%k; } memset(dp,0,sizeof(dp)); dp[0][s[0]]=1; for(i=1;i<n;i++) for(j=k-1;j>=0;j--){ if(dp[i-1][j]){ dp[i][(j+s[i])%k]=1; dp[i][((j-s[i])%k+k)%k]=1; //加上k防止产生负值 } } // for(i=0;i<n;i++){ // for(j=0;j<k;j++) // cout<<dp[i][j]<<" "; // cout<<endl; // } if(dp[n-1][0]) printf("Divisible\n"); else printf("Not divisible\n"); } return 0; }
相关文章推荐
- Action Bar 详解
- 构造函数,函数重载
- Java中equals和==的区别,hashCode和equals的关系
- openlayers2 wfs方式加载矢量图层
- 使用file做swap分区
- C++实现图的邻接表
- logistic和softmax原理、联系
- 获取带滚动条的页面的位置,长宽等信息
- 开博第一篇
- 华为OJ平台试题 —— 整数排序
- 修正线性单元(Rectified linear unit,ReLU)
- 求职感悟
- 白盒测试方法比较
- IDEA编辑web.xml时提示:element url-pattern is not allowed here
- Poco数据库操作用户手册(一)
- JAVA 配置环境变量
- uva 11504 - Dominos(强联通分量)
- HDU1847Good Luck in CET-4 Everybody!递推求解必胜、必败点 附三种经典博弈
- cognos 10.2.2 Framework manager使用”数据源”新建查询主题
- 设计一个可玩性与可重复性高的游戏关卡