poj 1745 dp(一组数任意加减能否整除k)
来源:互联网 发布:php获取页面代码方法 编辑:程序博客网 时间:2024/04/25 23:08
题意:给出n个数,问在这n个数中任意添加+,-号,能否得出一个数整除k。
思路:动态规划。dp[i][j]表示前i个数的组合能否整除j。由于最后只需要知道dp[n-1][0](元素从0~n-1)的值,所以用递归形式的dp。
#include <stdio.h>#include <string.h>#define N 10005int n,k;int s[N],dp[N][205];int solve(int x,int m){ if(!x) return m == s[0]; if(dp[x][m] != -1) return dp[x][m]; if(solve(x-1,(m+s[x])%k) || solve(x-1,((m-s[x])%k+k)%k)) return dp[x][m] = 1; return dp[x][m] = 0;}int main(){ int i; memset(dp, -1, sizeof(dp)); scanf("%d %d",&n,&k); for(i = 0;i<n;i++){ scanf("%d",&s[i]); s[i] %= k; } if(solve(n-1,0)) printf("Divisible\n"); else printf("Not divisible\n"); return 0;}
0 0
- poj 1745 dp(一组数任意加减能否整除k)
- hdu oj 6020 求给出一串数和一个K任意去点掉k个数能否被三整除(思维)
- 任意长度的数能否被N整除
- 判断数abcdef能否被k整除(k属于[2,9])
- K好数(DP)
- HDU 5373 The shortest problem(判断一个数能否被11整除)
- 习题 2.4(5) 判断一个数n能否同时被3和5整除。
- POJ 2699:自整除数
- 判断数abcdef能否被11、12整除
- 怎样判断一个数能否被7整除
- 判断一个数能否被另一个数整除
- 判断一个数能否被7或9整除
- 判断一个数能否被2、3、5整除
- 如何判断一个数字能否同时被两个数整除;
- 检测一个数能否被3整除----位运算
- 判断一个数能否被3,5,7整除
- 输入一个数判断能否被五整除
- 五个整数任意组合(加减)得到1~122之间的数
- 2.1笔记
- DaoFactory设计
- mongodb目录结构
- poj1386 play on word 欧拉回路+并查集
- Pascal's Triangle
- poj 1745 dp(一组数任意加减能否整除k)
- Android性能优化典范(三)
- Matlab R2013a: C++ MEX on Ubuntu 14.04 64-bit
- c++ standard library algorithm count demo
- Fiddler (一) 教程
- switch语句有关default位置的问题
- HDU2566 统计硬币【水题】
- Lining Up - UVa 270
- 求1+2+…+n, 要求不能使用乘除法、for、while、if、else、switch、case和条件语句