UVa 10036 Divisibility (同余DP)
来源:互联网 发布:淘宝代理靠不靠谱 编辑:程序博客网 时间:2024/06/09 22:07
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=977
直接暴力肯定不行,都O(2^n)了,那么从同余的性质入手,
定义dp[i][j]表示加到第i个数时是否能被j整除。
那么可以得到如下状态转移方程:
dp[i][(j + a) % k] = dp[i][(j - a + k) % k] = dp[i - 1][j];
完整代码:
/*0.062s*/#include<bits/stdc++.h>using namespace std;bool dp[10005][105];int main(){int t, n, k, a, i, j;scanf("%d", &t);while (t--){scanf("%d%d%d", &n, &k, &a);memset(dp, 0, sizeof(dp));dp[0][(a % k + k) % k] = true;for (i = 1; i < n; ++i){scanf("%d", &a);a = abs(a) % k;for (j = 0; j < k; ++j)if (dp[i - 1][j])dp[i][(j + a) % k] = dp[i][(j - a + k) % k] = true;}puts(dp[n - 1][0] ? "Divisible" : "Not divisible");}return 0;}
1 0
- UVa 10036 Divisibility (同余DP)
- POJ 1745 / UVa 10036 Divisibility (同余定理,DP,经典题目)
- lightoj 1078 - Integer Divisibility 【同余】
- LightOJ 1078 - Integer Divisibility (同余定理)
- lightoj 1078 - Integer Divisibility 【同余定理】
- LightOJ 1078 - Integer Divisibility【同余】
- LightOJ1078 Integer Divisibility(同余定理)
- 【 LightOJ 1078 Integer Divisibility + 同余定理 】
- LightOJ 1078 Integer Divisibility (同余定理)
- LightOJ1078 Integer Divisibility (同余定理)
- 假期训练——UVA - 10036 Divisibility DP
- light oj 1078 - Integer Divisibility【同余定理】
- 【Light-oj】-Integer Divisibility(同余定理)
- LightOJ 1078 Integer Divisibility (同余定理)
- LightOJ 1078 Integer Divisibility (同余定理 )
- Light Oj 1078 Integer Divisibility(同余定理)
- 【light oj1078】Integer Divisibility(同余定理)
- UVa 10036 - Divisibility
- php根据操作系统转换文件名大小写
- Qt核心剖析:信息隐藏(1)
- sql语句
- Tuple的取值过程/求长度
- js document常用的属性以及方法
- UVa 10036 Divisibility (同余DP)
- POJ 3278解题报告(C语言版)//Catch That Cow
- Java:单例模式的七种写法
- Unity3D基础学习之AssetBundle 资源包创建与加载
- Android 关机解析
- js根据15,18位身份证号获取生日与性别
- 爱一个人就要不顾一切
- 通过标签用法对比HTML 5开发与HTML 4的区别
- 学习jQuery必须知道的几种常用方法