UVa 10036 - Divisibility
来源:互联网 发布:算法与程序的关系 编辑:程序博客网 时间:2024/05/22 13:50
题目:给你N个数,在N个数中加入加号或减号,判断能否组成整除K的组合。
分析:dp。状态f(i,j)为前i个数字组成的结果余数可以为j的真值。
状态转移方程:f(i+1,(j±a[i])%k) = max(f(i,j)){ 0 =< j < K }
说明:每次计算前清空数据;计算前把数据先映射到%K的值域。
#include <iostream>#include <cstdlib>#include <cstring>#include <cstdio>#include <cmath>using namespace std;int a[10004];int f[10004][104];int main(){int T,N,K;while ( scanf("%d",&T) != EOF ) while ( T -- ) {scanf("%d%d",&N,&K);for ( int i = 0 ; i < N ; ++ i )scanf("%d",&a[i]);for ( int i = 0 ; i < N ; ++ i )a[i] = abs(a[i])%K;memset( f, 0, sizeof(f) );f[0][0] = 1;for ( int i = 0 ; i < N ; ++ i )for ( int j = 0 ; j < K ; ++ j )if ( f[i][j] ) {f[i+1][(j+K+a[i])%K] = 1;f[i+1][(j+K-a[i])%K] = 1;}if ( f[N][0] ) printf("Divisible\n");else printf("Not divisible\n");}return 0;}
0 0
- UVa 10036 - Divisibility
- UVA 10036 Divisibility
- uva 10036 Divisibility
- UVA 10036 Divisibility
- UVA 10036 Divisibility【补充分析】
- UVa 10036 Divisibility (同余DP)
- 假期训练——UVA - 10036 Divisibility DP
- POJ 1745 / UVa 10036 Divisibility (同余定理,DP,经典题目)
- Divisibility
- Divisibility
- Divisibility
- Divisibility
- Divisibility
- Divisibility
- Divisibility
- 1129: Divisibility
- poj1745 Divisibility
- poj divisibility
- CareerCup之1.8 字符串移位包含问题
- IOS中的MVC整体框架图
- 为现代JavaScript开发做好准备
- 有关“无状态“的理解
- Some notes about the time
- UVa 10036 - Divisibility
- ubuntu安装android avd启动出错接囧
- [Cocos2d-x v3.x]序列帧动画
- 每天学一点算法-Dijkstra算法
- 长整数文本到时间戳
- hdu 1175 连连看
- 打开文件目录~
- 开源天气接口网站
- android数据储存之存储方式