ZOJ 1563 Pearls(动态规划)
/*
分析:
因为他给的数据是递增的 而求得是这些数据总的 最优解
所以我们可以考虑,它的子问题求解不影响总的求解 也就是我们可以先求出 第一个的最优解 第二个....以此类推到总的最优解
那么我们想如何利用前面一个的最优解推出当前的最优解 考虑这个与背包问题类似 我们在加入当前物品时判断当前加入后是否影响到
前面的最优解
那我们就来分析 我们需要什么要的数据
因为题目中计算最优解的时候每个等级的Money是固定的 而我们的每个等级所需要买的珍珠数量是不一定的 我的记录最优解的状态是记录
前n个等级所得出来的最优解。
则可以确定的是 Money[max],dp[max]是需要的。接下来是分析(每个等级所需要买的珍珠数量是不一定)
因为我们是根据前n等级的最优解就是前n等级下的花的最少的钱 我们知道的是当前等级的数量和价格
我们想知道的是用当前等级的价格去买该等级以下的珍珠是否比前面的解法更优 而如果用遍历用当前等级的价格买该等级以下的所有情况。
这些情况我们列举一下 就是1...n ,2..n,3....n,...,n-1...n;所需要知道的就是这些阶段的珍珠数量。而我们可以用sum[i]记录前i个的所有珍珠,获得
想要阶段的珍珠数量只需要sum[n]-sum[i]就可以了 。
分析到这里我们就可以写动态方程了。 dp for(i=1;i<=n;i++) dp[i]=1000000;
for(j=0;j<i;j++)
动态方程就是 dp[i]=min(dp[i],dp[j]+(sum[i]-sum[j]+10)*money[i]);
*/
#include<iostream>
#include<cstring>
#include<algorithm>
#include<climits>
using namespace std;
int sum[],money[];
int dp[];
int main(void)
{
int t,n,j;
cin>>t;
while(t--)
{
cin>>n;
memset(dp,,sizeof(dp));
sum[]=;
for(int i=;i<=n;i++)
{
cin>>j>>money[i];
sum[i]=sum[i-]+j;
}
for(int i=;i<=n;i++)
{
dp[i]=INT_MAX;
for(j=;j<i;j++)
{
dp[i]=min(dp[i],dp[j]+(sum[i]-sum[j]+)*money[i]);
}
}
cout<<dp[n]<<endl;
}
return ;
}
ZOJ 1563 Pearls(动态规划)的更多相关文章
- HDU-5009 Paint Pearls 动态规划 双向链表
题目链接:https://cn.vjudge.net/problem/HDU-5009 题意 给一串序列,可以任意分割多次序列,每次分割的代价是被分割区间中的数字种数. 求分割区间的最小代价.n< ...
- HDU 5009 Paint Pearls (动态规划)
Paint Pearls Problem Description Lee has a string of n pearls. In the beginning, all the pearls have ...
- ACM学习历程——POJ1260 Pearls(动态规划)
Description In Pearlania everybody is fond of pearls. One company, called The Royal Pearl, produces ...
- [ACM_动态规划] ZOJ 1425 Crossed Matchings(交叉最大匹配 动态规划)
Description There are two rows of positive integer numbers. We can draw one line segment between any ...
- ZOJ 2672 Fibonacci Subsequence(动态规划+hash)
题意:在给定的数组里,寻找一个最长的序列,满足ai-2+ai-1=ai.并输出这个序列. 很容易想到一个DP方程 dp[i][j]=max(dp[k][i])+1. (a[k]+a[i]==a[j], ...
- [ZOJ 3662] Math Magic (动态规划+状态压缩)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3662 之前写过这道题,结果被康神吐槽说代码写的挫. 的确,那时候 ...
- ZOJ 1234 Chopsticks(动态规划)
Chopsticks 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=234 题目大意:给定n个筷子的长度,取k+8套筷 ...
- HDOJ 1081(ZOJ 1074) To The Max(动态规划)
Problem Description Given a two-dimensional array of positive and negative integers, a sub-rectangle ...
- 随手练——ZOJ 1093 Monkey and Banana(动态规划)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=93 一堆科学家研究猩猩的智商,给他M种长方体,每种N个. 然后,将一个 ...
随机推荐
- web本地存储-IndexedDB
IndexedDB, HTML5中的一种数据存储方式,索引数据库. 一个网站可能有一个或多个 IndexedDB 数据库,每个数据库必须具有惟一的名称.一个数据库可包含多个对象存储,一个对象存储相当于 ...
- Android应用中使用百度地图API定位自己的位置(二)
官方文档:http://developer.baidu.com/map/sdkandev-6.htm#.E7.AE.80.E4.BB.8B3 百度地图SDK为开发人员们提供了例如以下类型的地图覆盖物: ...
- html表单提交的几种方法
原文地址:http://www.ijser.cn/?p=34 最普通最经常使用最一般的方法就是用submit type..看代码: <form name=”form” method=”post” ...
- Eclipse和PyDev搭建python开发环境
Eclipse和PyDev搭建python开发环境 1.1整体目标 本文档作为python学习者的新手教程,通过本教程能够了解python用途.语法.在实际工作中的应 ...
- mvp框架
本文在于巩固基础 mvp框架的概念: MVP是MVC模式的另一个变种,MVP即可以应用到WEB项目中, 也可以应用到Winform项目中,它的方便的测试机制为大型复杂的企业级应用带来了福音,MVP模式 ...
- 【转】 LESS CSS 框架简介
简介 CSS(层叠样式表)是一门历史悠久的标记性语言,同 HTML 一道,被广泛应用于万维网(World Wide Web)中.HTML 主要负责文档结构的定义,CSS 负责文档表现形式或样式的定义. ...
- left join 和 left outer join 的区别
left join 和 left outer join 的区别 通俗的讲: A left join B 的连接的记录数与A表的记录数同 A right join ...
- windows下,用绝对路径向html文件中插入图片
首先注意路径中是否包含中文名比如 <img src="F:\头像\小黄人.jpg" width="500" height="200"/ ...
- JVM学习之GC常用算法
出处:博客园左潇龙的技术博客--http://www.cnblogs.com/zuoxiaolong,多谢分享 GC策略解决了哪些问题? 既然是要进行自动GC,那必然会有相应的策略,而这些策略解决了哪 ...
- 关于MySQL MyISAM 表并发
MyISAM的锁调度 MyISAM存储引擎的读锁和写锁是互斥的,读写操作是串行的.那么,一个进程请求某个MyISAM表的读锁,同时另一个进程也请求同一表的写锁,MySQL如何处理呢?答案是写进程先获得 ...