HDU1300DP
/*
HDU1300 DP
特定n饰品种类
每个饰品的两个数据。amount[i]代表数量。price[i]代表单位价格
购买珠宝时要满足下面购买规则:
单独买:每种珠宝要加上数量10
合并买:能够把连续几种珠宝数量合并,再加上10,单位价格依照price最大的计算
求出购买全部的珠宝最少要花费多少 思路: 初始化:第一种珠宝 仅仅须要管当前第i种珠宝的购买
购买方法一:前i-1种依照前面的最优值购买(无后效性),第i种单独买
则: dp[i]=dp[i-1]+price[i]*(amount[i]+10);
购买方法二:从第j种到第i种数量合并购买,当中j从1取到i
则: dp[i]=dp[j-1]+(amount_tot[i]-amount_tot[j-1]+10)*price[i]; 结果:dp[n]
*/
#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <math.h>
#include <map>
#include <set>
#include <vector>
#include <string>
#include <cstring>
#include <sstream>
using namespace std; #define input freopen("input.txt","r",stdin)
#define output freopen("output.txt","w",stdout)
#define For1(i,a,b) for (i=a;i<b;i++)
#define For2(i,a,b) for (i=a;i<=b;i++)
#define Dec(i,a,b) for (i=a;i>b;i--)
#define Dec2(i,a,b) for (i=a;i>=b;i--)
#define Sca_d(x) scanf("%d",&x)
#define Sca_s(x) scanf("%s",x)
#define Sca_c(x) scanf("%c",&x)
#define Sca_f(x) scanf("%f",&x)
#define Sca_lf(x) scanf("%lf",&x)
#define Fill(x,a) memset(x,a,sizeof(x))
#define MAXN 1005
#define MAXINT 99999999 int main()
{
//input;
int i,j,n,k,t;
int amount[MAXN],amount_tot[MAXN],price[MAXN];
//注意:amount_tot[k]指的是从第1种到第k种珠宝一共同拥有多少个
//也即前序和
__int64 dp[MAXN];
cin>>t;
while(t--)
{
Fill(amount,0);
Fill(amount_tot,0);
Fill(price,0);
Fill(dp,0);
cin>>n;
For2(i,1,n)
Sca_d(amount[i]),amount_tot[i]=amount_tot[i-1]+amount[i],Sca_d(price[i]);
dp[1]=(amount[1]+10)*price[1];
For2(i,2,n)
{
dp[i]=dp[i-1]+price[i]*(amount[i]+10);
For2(j,1,i)
dp[i]=min(dp[j-1]+(amount_tot[i]-amount_tot[j-1]+10)*price[i],dp[i]);
}
cout<<dp[n]<<endl;
}
return 0;
}
版权声明:本文博客原创文章,博客,未经同意,不得转载。
HDU1300DP的更多相关文章
随机推荐
- 在Android手机上获取其它应用的包名及版本
转载请注明出处:http://blog.csdn.net/jason_src/article/details/37757661 获取Android手机上其它应用的包名及版本方法有非常多,能够通过AAP ...
- Android SurfaceView实战 打造抽奖转盘
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/41722441 ,本文出自:[张鸿洋的博客] 1.概述 今天给大家带来Surfac ...
- Android播放音乐时跳动的屏谱demo
Android实现播放音频时的跳动频谱,并实现可以调节的均衡器. Main.java package com.wjq.audiofx; import android.app.Activity; imp ...
- MIPI CSI-2规范一——概述及层级
MIPI CSI-2规范一——概述及层级 CSI-2概述 CSI-2规范定义了发送者和接收者之间传输和控制接口的标准数据.数据传输接口(指CSI-2)是单向差分串行接口,传输数据和始终信号:接口的物理 ...
- [Java Performance] 数据库性能最佳实践 - JPA缓存
JPA缓存(JPA Caching) JPA有两种类型的缓存: EntityManager自身就是一种缓存.事务中从数据库获取的和写入到数据库的数据会被缓存(什么样的数据会被缓存.在后面有介绍).在一 ...
- Servlet的学习之Cookie
从本篇开始学习Servlet技术中的Cookie专题. 首先来了解什么是“会话”.会话是web技术中的一个术语,可以简单的理解为:用户打开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭 ...
- mac 修改系统配置参数 主机名 等
mac 修改系统配置参数,可以使用 命令 scutil 参考网址: https://developer.apple.com/library/mac/documentation/Darwin/Refer ...
- 基于Spring提供支持不同设备的页面
基于Spring来检测访问Web页面的设备是很简单的,在这个经验中我们讲到过.通常不同的设备访问我们是通过响应式设计来统一处理各种设备的尺寸的.但是如果希望针对不同的设备,显示不同的内容呢? Spri ...
- HDU 4868 Information Extraction(2014 多校联合第一场 H)
看到这道题时我的内心是奔溃的,没有了解过HTML,只能靠窝的渣渣英语一点一点翻译啊TT. Information Extraction 题意:(纯手工翻译,有些用词可能在html中不是一样的,还多包涵 ...
- 基于visual Studio2013解决面试题之0201二叉树转链表
题目