HDU 6024 Building Shops (简单dp)
来源:互联网 发布:java论坛哪个好 编辑:程序博客网 时间:2024/06/05 12:41
思路:
说是简单dp。。。
其实有点乱
#include <cstdio>#include <iostream>#include <string.h>#include <queue>#include <algorithm>typedef long long int lli;using namespace std;struct node{ int p,v;}a[3030];bool cmp(const node&a,const node&b){ return a.p<b.p;}lli dp[3030][3030];// i是第几个商店 j是i左边的最右边的商店的标号int main(){ int n; while(~scanf("%d",&n)){ memset(dp,0,sizeof(dp)); for(int i = 1;i <= n;i++){ scanf("%d%d",&a[i].p,&a[i].v); } sort(a+1,a+1+n,cmp);//注意排序 否则会wa dp[1][1] = a[1].v; lli temp; for(int i = 2;i <= n;i++){ temp = dp[i-1][1]; for(int j = 1;j < i;j++){ dp[i][j] = dp[i-1][j] + a[i].p-a[j].p; temp = min(temp,dp[i-1][j]); //找出前一个商店选择好之后花费最少的一个状态 } dp[i][i] = temp + a[i].v; } lli ans = 0x3f3f3f3f; for(int i = 1;i <= n;i++){ ans = min(ans,dp[n][i]); } printf("%lld\n",ans); }}
改进:
发现可以进一步优化空间,因为我们每次只用了上一层的数据。
#include <cstdio>#include <iostream>#include <string.h>#include <queue>#include <algorithm>typedef long long int lli;using namespace std;struct node{ int p,v;}a[3030];bool cmp(const node&a,const node&b){ return a.p<b.p;}lli dp[3030];int main(){ int n; while(~scanf("%d",&n)){ memset(dp,0,sizeof(dp)); for(int i = 1;i <= n;i++){ scanf("%d%d",&a[i].p,&a[i].v); } sort(a+1,a+1+n,cmp); dp[1] = a[1].v; for(int i = 2;i <= n;i++){ lli mmin = 0x3f3f3f3f; for(int j = 1;j < i;j++){ mmin = min(mmin,dp[j]); dp[j] += a[i].p-a[j].p; } dp[i] = mmin + a[i].v; } lli ans = dp[1]; for(int i = 2;i <= n;i++){ ans = min(ans,dp[i]); } printf("%lld\n",ans); }}
阅读全文
1 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 DP 提升
- HDU 6024 Building Shops
- HDU6024-Building Shops-简单DP
- 【HDU6024】Building Shops(简单dp)
- HDU—6024(Building Shops)
- HDU6024 Building Shops(DP)
- 递推-hdu-6024-Building Shops
- 6月28
- 拓扑排序(BFS,DFS)
- 自我学习的网站
- JS模块化
- 光源的选择
- HDU 6024 Building Shops (简单dp)
- 连续子数组的最大和
- 路由及交换机设置上网的几种方式
- angularJS搭建环境
- 6月29
- 浅谈Jquery中的bind(),live(),delegate(),on()绑定事件方式
- Machine Learning---SVM
- UVA 10935
- Hash length extension attacks 分析