poj 1745 Divisibility
来源:互联网 发布:淘宝拍摄平台 编辑:程序博客网 时间:2024/05/19 03:26
此题看听说是dp,然后自己也就只按照dp去想,代码跑了近600ms,算是险过吧。
dp的思路,用余数来作为dp的判断条件,因为余数有正有负,所以需要把所有都正值化,即将200作为分界点,然后就是最普通的dp了,其实想到用余数来dp就已经接近解决了。
#include<cstdio>#include<cstring>#include<iostream>using namespace std;const int N = 10001;int n,k;int arr[N];bool dp[2][401];int main(void){ cin>>n>>k; bool flag = false; for(int i=1;i<=n;++i) scanf("%d",arr+i); memset(dp[0],false,sizeof(dp[0])); dp[0][200] = true; int mi = 200 - k + 1; int ma = 200 + k -1; for(int i=1;i<=n;++i) { int now = i&1; int fro = (i-1)&1; memset(dp[now],false,sizeof(dp[now])); for(int j=mi;j<=ma;++j) if(dp[fro][j]) { int tmp = (j-200+arr[i])%k+200; int tmp1 = (j-200-arr[i])%k+200; dp[now][tmp] = true; dp[now][tmp1] = true; } } if(dp[n%2][200]) cout<<"Divisible"<<endl; else cout<<"Not divisible"<<endl; return 0;}
- poj 1745 Divisibility
- POJ 1745 Divisibility
- POJ 1745 Divisibility
- POJ 1745 Divisibility
- POJ 1745 Divisibility
- poj 1745 Divisibility
- poj 1745 Divisibility
- poj 1745 Divisibility dp
- POJ 1745 Divisibility DP
- poj 1745 Divisibility
- poj 1745-Divisibility
- POJ 1745 Divisibility
- poj 1745 Divisibility (dp)
- poj 1745 Divisibility dp
- 【DP】POJ-1745 Divisibility
- poj 1745 Divisibility 【DP】
- poj 1745(Divisibility)
- 【POJ 1745 Divisibility】
- singleton模式的的两种实现方式
- 顺丰内测“无人机”运送快递
- NSString基本操作
- C++ 虚函数表
- 线段相交算法——平面扫描
- poj 1745 Divisibility
- IIS 重新注册Asp.net 2.0
- 用进程开辟物理内存
- eclipse 配置 tomcat
- Mysql中的日志文件
- 【转】Android Tombstone/Crash的log分析和定位
- 覆盖,重写,重载,隐藏,多态的区别
- 任何最短一段程序,一定要加异常处理,面积计算一定要验证
- Java中的StringUtils类