uva 1632 Alibaba
来源:互联网 发布:考试app软件 编辑:程序博客网 时间:2024/05/19 15:25
题目大意:lrj306页 习题9-8 想了很久,区间DP的状态意识到了,但是不知道这个怎么和deadline联系起来,最后看别人的解题报告,恍然大悟,原来如此,顺便练了一下滚动数组,还是很有收获的。
题目链接:https://vjudge.net/problem/UVA-1632
第一份代码没有使用滚动数组,第二份使用了滚动数组,第二份比第一份的速度要上不少。
#include <cstdio>#include <iostream>#include <cstring>#define min(a,b) (((a)<(b))?(a):(b))using namespace std;const int maxn = 10005 , inf = 0x3f3f3f3f;int a[maxn] , d[maxn];int dp[maxn][maxn][2];int n;void solve () { for (int i = 1 ; i <= n ; i++) dp[i][i][0] = dp[i][i][1] = 0; for (int i = n-1 ; i >= 1 ; i--) { for (int j = i+1 ; j <= n ; j++) { dp[i][j][0] = min(dp[i+1][j][0]+a[i+1]-a[i] , dp[i+1][j][1]+a[j]-a[i]); if (dp[i][j][0] >= d[i]) dp[i][j][0] = inf; dp[i][j][1] = min(dp[i][j-1][1]+a[j]-a[j-1] , dp[i][j-1][0]+a[j]-a[i]); if (dp[i][j][1] >= d[j]) dp[i][j][1] = inf; } } int ans = min(dp[1][n][0] , dp[1][n][1]); if (ans >= inf) cout << "No solution" << endl; else cout << ans << endl;}int main () { while (cin >> n) { memset (a,0,sizeof(a)); memset (d,0,sizeof(d)); memset (dp,0,sizeof(dp)); for (int i = 1 ; i <= n ; i++) scanf("%d%d" , &a[i] , &d[i]); solve(); }}
#include <cstdio>#include <iostream>#include <cstring>#define min(a,b) (((a)<(b))?(a):(b))using namespace std;const int maxn = 10005 , inf = 0x3f3f3f3f;int a[maxn] , d[maxn];int dp[2][maxn][2];int n;void solve () { dp[(n&1)^1][n][1] = dp[(n&1)^1][n][0] = 0; for (int i = n-1 ; i >= 1 ; i--) { int x = (i&1)^1; for (int j = i+1 ; j <= n ; j++) { dp[x][j][0] = min(dp[x^1][j][0]+a[i+1]-a[i] , dp[x^1][j][1]+a[j]-a[i]); if (dp[x][j][0] >= d[i]) dp[x][j][0] = inf; dp[x][j][1] = min(dp[x][j-1][1]+a[j]-a[j-1] , dp[x][j-1][0]+a[j]-a[i]); if (dp[x][j][1] >= d[j]) dp[x][j][1] = inf; } } int ans = min(dp[0][n][0] , dp[0][n][1]); if (ans >= inf) cout << "No solution" << endl; else cout << ans << endl;}int main () { while (cin >> n) { memset (a,0,sizeof(a)); memset (d,0,sizeof(d)); memset (dp,0,sizeof(dp)); for (int i = 1 ; i <= n ; i++) scanf("%d%d" , &a[i] , &d[i]); solve(); }}
0 0
- Alibaba - UVa 1632 dp
- UVa 1632 Alibaba
- UVA 1632(p306)----Alibaba
- UVA 1632 Alibaba
- uva 1632 Alibaba
- Uva-1632 Alibaba(贪心)
- Alibaba UVa 1632
- UVA 1632-Alibaba(DP)
- [UVA 1632]Alibaba[区间DP]
- Uva 1632 alibaba 区间dp
- uva 1632——Alibaba
- UVA - 1632 Alibaba 区间DP
- UVa 1632 Alibaba (区间dp)
- UVA 1632 Alibaba(区间dp)
- Alibaba UVA
- UVa #1632 Alibaba (习题9-8)
- UVA-1632 Alibaba (区间DP)
- 1632 - Alibaba(DP)
- 修改Eclipse因为系统权限异常:permission is only granted to system apps
- java 中char类型和 Unicode编码
- windows vim settings
- jquery获取checkbox值
- Only the original thread that created a view hierarchy can touch its views.
- uva 1632 Alibaba
- 启动tomcatError occurred during initialization of VM java/lang/NoClassDefFoundError: java/lang/Object
- 几种排序算法总结
- linux date格式化时间和日期
- 字符串搜索-java
- ubuntu部署flask项目
- MySQL学习笔记 -- day02 DML语法
- 集成第三方组件--七鱼客服
- python数据分析(九)-点积与线性代数