hdu 6024 Building Shops dp
来源:互联网 发布:网络包装公司是干嘛的 编辑:程序博客网 时间:2024/06/16 22:12
题目:
http://acm.hdu.edu.cn/showproblem.php?pid=6024
题意:
有n间教室,要选一些建商店,对于每间教室,如果选中在这间教室建商店,会给出一个花费,如果没有选中,那么也有一个花费,就是这间教室到左边最近的商店的距离。要求当一间教室没有建设商店时,那么它左边一定有一个商店。求最小花费
思路:
根据题意,第一间教室一定要建商店。定义dp[0][i]为第i间教室不建商店时,从1~i的最小花费,dp[1][i]为第i间教室建商店时,从1~i的最小花费,容易推出
#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N = 10000 + 10, INF = 0x3f3f3f3f, mod = 1e9 + 7;struct node{ int x, y;}arr[N];ll dp[2][N];int main(){ int n; while(~ scanf("%d", &n)) { for(int i = 1; i <= n; i++) scanf("%d%d", &arr[i].x, &arr[i].y); sort(arr + 1, arr + 1 + n, [](node a, node b){return a.x < b.x;}); memset(dp, 0x3f, sizeof dp); dp[1][1] = arr[1].y; for(int i = 2; i <= n; i++) { dp[1][i] = min(dp[0][i-1], dp[1][i-1]) + arr[i].y; ll val = 0; for(int j = i-1; j >= 1; j--) { val += 1LL * (i-j) * (arr[j+1].x - arr[j].x); dp[0][i] = min(dp[0][i], dp[1][j] + val); } } printf("%lld\n", min(dp[0][n], dp[1][n])); } return 0;}
阅读全文
0 0
- HDU 6024 Building Shops[dp]
- hdu 6024 Building Shops (dp)
- HDU 6024 Building Shops【DP】
- HDU 6024 Building Shops(DP)
- HDU 6024 Building Shops(DP)
- hdu 6024 Building Shops dp
- hdu 6024 Building Shops (DP)
- HDU 6024 Building Shops (DP)
- HDU 6024 Building Shops DP 提升
- HDU 6024 Building Shops(DP)
- HDU 6024 Building Shops (简单dp)
- HDU 6024 Building Shops
- 递推-hdu-6024-Building Shops
- hdu 6024 Building Shops 【递归+记忆存储】
- HDU—6024(Building Shops)
- Building Shops HDU
- (HDU 6024 女生专场)Building Shops 简单DP详细解答
- HDU6024-Building Shops-简单DP
- [BZOJ2194] FFT卷积
- Linux操作系统 一、二章课后问答题
- 浏览器渲染流水线解析(二)
- THE FORM-WIDGET COOKBOOK
- 24、Selenium + Python 实现 UI 自动化测试-文件下载
- hdu 6024 Building Shops dp
- poi导出excel后台代码示例
- rest,restFul解析
- 视频处理
- 1110: 最近共同祖先(函数专题)
- UEFI+BOIS
- LDAP学习笔记(一)LDAP基本元素
- maven工程下的pom层级关系
- MATLAB的小程序(续更)