POJ 1260 DP

原创 2015年11月21日 15:56:01

Pearls
Time Limit: 1000MS Memory Limit: 10000K
Total Submissions: 8068 Accepted: 4025

Description

In Pearlania everybody is fond of pearls. One company, called The Royal Pearl, produces a lot of jewelry with pearls in it. The Royal Pearl has its name because it delivers to the royal family of Pearlania. But it also produces bracelets and necklaces for ordinary people. Of course the quality of the pearls for these people is much lower then the quality of pearls for the royal family.In Pearlania pearls are separated into 100 different quality classes. A quality class is identified by the price for one single pearl in that quality class. This price is unique for that quality class and the price is always higher then the price for a pearl in a lower quality class.
Every month the stock manager of The Royal Pearl prepares a list with the number of pearls needed in each quality class. The pearls are bought on the local pearl market. Each quality class has its own price per pearl, but for every complete deal in a certain quality class one has to pay an extra amount of money equal to ten pearls in that class. This is to prevent tourists from buying just one pearl.
Also The Royal Pearl is suffering from the slow-down of the global economy. Therefore the company needs to be more efficient. The CFO (chief financial officer) has discovered that he can sometimes save money by buying pearls in a higher quality class than is actually needed.No customer will blame The Royal Pearl for putting better pearls in the bracelets, as long as the
prices remain the same.
For example 5 pearls are needed in the 10 Euro category and 100 pearls are needed in the 20 Euro category. That will normally cost: (5+10)*10+(100+10)*20 = 2350 Euro.Buying all 105 pearls in the 20 Euro category only costs: (5+100+10)*20 = 2300 Euro.
The problem is that it requires a lot of computing work before the CFO knows how many pearls can best be bought in a higher quality class. You are asked to help The Royal Pearl with a computer program.

Given a list with the number of pearls and the price per pearl in different quality classes, give the lowest possible price needed to buy everything on the list. Pearls can be bought in the requested,or in a higher quality class, but not in a lower one.

Input

The first line of the input contains the number of test cases. Each test case starts with a line containing the number of categories c (1<=c<=100). Then, c lines follow, each with two numbers ai and pi. The first of these numbers is the number of pearls ai needed in a class (1 <= ai <= 1000).
The second number is the price per pearl pi in that class (1 <= pi <= 1000). The qualities of the classes (and so the prices) are given in ascending order. All numbers in the input are integers.

Output

For each test case a single line containing a single number: the lowest possible price needed to buy everything on the list.

Sample Input

2
2
100 1
100 2
3
1 10
1 11
100 12
Sample Output

330
1344
题意:
给许多种的珍珠的一个清单,每一种珍珠有个数和价格,必须要买清单上那么多个数的珍珠,买n个D第i种珍珠的付款方式为(n+10)*p[i],但是可以用单价比低价高的珍珠替换单价比较低的珍珠。求使得满足购买个数的最少付款钱数。
解法:
dp[i]是挑选完前i种后所付出最少的价格。在推dp[i]时,前几种珍珠用第i总取代。dp[i]初始为dp[i-1]+(a[i]+10)*p[i].让后从这些中找一个最小的赋值给dp[i]

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#define F(i,a,b) for(int i = a;i<=b;i++)

using namespace std;

int a[200];
int p[200];
int sum[200];
int dp[200];

int main(){
    int N;
    scanf("%d",&N);
    while(N--){
        int n;
        scanf("%d",&n);
        sum[0] = 0;
        F(i,1,n){
            scanf("%d%d",&a[i],&p[i]);
            sum[i] = sum[i-1] + a[i];
        }

        dp[0] = 0;
        F(i,1,n){
            dp[i] = dp[i-1] + (a[i] + 10)*p[i];
            F(j,0,i-1){
                dp[i] = min(dp[i],dp[j]+(sum[i]-sum[j]+10)*p[i]);
            }
        }
        printf("%d\n",dp[n]);
    }

    return 0;
}

hdu 1260 Tickets(dp)

小记:1A 思路:
  • ljd4305
  • ljd4305
  • 2014年05月07日 13:23
  • 771

poj1260Pearls(dp)

Pearls Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8699   Accepte...
  • SDUTyangkun
  • SDUTyangkun
  • 2016年08月16日 21:35
  • 821

poj1260

题目有难度。题意为:给定
  • u011725603
  • u011725603
  • 2014年07月22日 09:14
  • 720

poj 1260 dp

2015/2/12 简单的10背包变形 状态方程 dp[i] = dp[i-1]+(c[i]+10)*v[i]; dp[i] = Min(dp[i],dp[...
  • u014204854
  • u014204854
  • 2015年02月12日 15:11
  • 329

poj 1260 Pearls (dp)

题意:不同等级的宝石,每个等级买了后等要额外付出10枚的钱,每一档可以买更高档的来代替,问全部宝石一共最少可花多少钱。 思路:一开始想的是贪心,然后发现不行;(别问为什么,你自己举个例子就会知道的);...
  • qq_34494458
  • qq_34494458
  • 2017年04月19日 22:04
  • 127

POJ 1260 Pearls DP

题目链接:Pearls     题目大意:这是个买珍珠的题,题目给出C种珍珠和每种珍珠的价格(pi),还有每种珍珠需要买多少个(ai),题目保证后输入的价格一定比之前的要高。为了防止有的人只...
  • MeiK_SDUT
  • MeiK_SDUT
  • 2016年08月24日 20:21
  • 222

POJ-DP题目列表【开启疯狗模式】

转载请注明出处:http://blog.csdn.net/a1dark DP是大伤、终于找到一份可以狂刷的清单、那便战个痛! 列表一:经典题目题号: 容易:  1018, 1050, ...
  • verticallimit
  • verticallimit
  • 2013年12月04日 11:05
  • 2012

poj 1260 Pearls (DP)

In Pearlania everybody is fond of pearls. One company, called The Royal Pearl, produces a lot of jew...
  • yjf3151731373
  • yjf3151731373
  • 2017年03月13日 12:08
  • 77

POJ 1260 Pearls(DP)

Description In Pearlania everybody is fond of pearls. One company, called The Royal Pearl, produces ...
  • Grit_ICPC
  • Grit_ICPC
  • 2015年08月24日 21:30
  • 441

Pearls - POJ 1260 dp

Pearls Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7360   Accepte...
  • u014733623
  • u014733623
  • 2014年08月27日 15:27
  • 447
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ 1260 DP
举报原因:
原因补充:

(最多只允许输入30个字)