/*
分析:
因为他给的数据是递增的 而求得是这些数据总的 最优解
所以我们可以考虑,它的子问题求解不影响总的求解 也就是我们可以先求出 第一个的最优解 第二个....以此类推到总的最优解
那么我们想如何利用前面一个的最优解推出当前的最优解 考虑这个与背包问题类似 我们在加入当前物品时判断当前加入后是否影响到
前面的最优解
那我们就来分析 我们需要什么要的数据
因为题目中计算最优解的时候每个等级的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(动态规划)的更多相关文章

  1. HDU-5009 Paint Pearls 动态规划 双向链表

    题目链接:https://cn.vjudge.net/problem/HDU-5009 题意 给一串序列,可以任意分割多次序列,每次分割的代价是被分割区间中的数字种数. 求分割区间的最小代价.n< ...

  2. HDU 5009 Paint Pearls (动态规划)

    Paint Pearls Problem Description Lee has a string of n pearls. In the beginning, all the pearls have ...

  3. ACM学习历程——POJ1260 Pearls(动态规划)

    Description In Pearlania everybody is fond of pearls. One company, called The Royal Pearl, produces ...

  4. [ACM_动态规划] ZOJ 1425 Crossed Matchings(交叉最大匹配 动态规划)

    Description There are two rows of positive integer numbers. We can draw one line segment between any ...

  5. 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], ...

  6. [ZOJ 3662] Math Magic (动态规划+状态压缩)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3662 之前写过这道题,结果被康神吐槽说代码写的挫. 的确,那时候 ...

  7. ZOJ 1234 Chopsticks(动态规划)

    Chopsticks 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=234 题目大意:给定n个筷子的长度,取k+8套筷 ...

  8. HDOJ 1081(ZOJ 1074) To The Max(动态规划)

    Problem Description Given a two-dimensional array of positive and negative integers, a sub-rectangle ...

  9. 随手练——ZOJ 1093 Monkey and Banana(动态规划)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=93 一堆科学家研究猩猩的智商,给他M种长方体,每种N个. 然后,将一个 ...

随机推荐

  1. 合并多个Redis dump.rdb 到一个rdb的多个database

    公司的服务器上运行了多个redis,现在希望合并到一个redis,用上redis的多database特性. 在网上找了一圈发现没有比较好的工具可以进行这个处理. 看过一个redis-dump号称可以导 ...

  2. Mirantis Fuel fundations

    Mirantis Nailgun is the most important service a RESTful application written in Python that contains ...

  3. Python学习笔记8-类的继承 、深度优先、广度优先

    Python 类声明 语法: class 类名: 类体 例: #--encoding:utf-8-- # class AddressBookEntity: myVersion=0.1 def __in ...

  4. Examining the Rooms(dp,斯特灵数)

    Examining the Rooms Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  5. 【转】C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部

    PS:文末的附件已更新,这次我放到博客园里面了,不会弹出广告,放心下载,O(∩_∩)O谢谢! 这是最近在做的一个项目中提到的需求,把一个现有的窗体应用程序界面嵌入到自己开发的窗体中来,看起来就像自己开 ...

  6. android_Intent对象初步(Activity传统的价值观念)

    说明:初步Intent物.主要使用Intent对象在Activity之间传递数据的方法. 样例:由MainActivity→OtherActivity的跳转过程中,把数据传递给OtherActivit ...

  7. HTML5表单增强

    感觉最大的改变就是表单元素可以不写在form标签中.写在其他地方,加个form属性就能提交了别的嘛感觉没什么,表单验证也不能提示信息,感觉不实用 <!DOCTYPE html> <h ...

  8. Linux 常用命令学习

    sed 大法: cat file | sed 's/string/replace_str/' file 按大小分割文件 split -b 100m filename 设置vi不自动转换tab: set ...

  9. 安装Ubuntu小计

    因为想学Linux了,所以想装一个Linux版本尝尝鲜,听说Ubuntu桌面版很炫,所以也没有啥特定理由的选了这个版本(实际我装的时候用了Ubuntu Kylin). 具体安装过程可以参考如下的教程: ...

  10. C++中指针和引用的选择

    何时使用引用和指针      1. 尽可能使用引用传递参数      2. 尽可能的使用const来保护引用和指针      3. 在可以使用引用的时候不要使用指针      4. 不要试图给引用重新 ...