zoukankan      html  css  js  c++  java
  • sicily 2502 买珍珠

    Description

    珍珠市场上有 N( N ≤ 100)种等级的珍珠,每种珍珠的需求数量是 Bi,单位价格是 Pi
    不幸的是,这个市场是黑市——购买一种珍珠,需要额外多付10个同种珍珠的钱(如果不购买当然不用)。
    针对这种情况,我们可以用高等级的珍珠来代替低等级的珍珠。
    举个例子,
    需要5个等级1的珠子(单位价格10元)、100个等级2的珠子(单位价格20元)。按照正常情况下购买需要花费 ( 5 +10 ) * 10 + ( 100 + 10 ) * 20 = 2350 元,如果用等级2的珠子代替等级1的珠子,只需要花费 ( 5 + 100 + 10 ) * 20 = 2300 元。
    现在的问题是,应该如何购买珍珠才能在满足需求的条件下花费最少。

    Input

    第一行,一个整数 N,表示珍珠等级总数。
    第二行, N个整数,按照等级从低到高描述每种珍珠的需求数量。
    第二行, N个整数,按照等级从低到高描述每种珍珠的单位价格。
    (当然价格也是递增的)。

    Output

    一个整数,表示最少花费。

    Sample Input

    2
    5 100
    10 20
    

    Sample Output

    2300

    分析:

    题目属于简单DP,需要注意的是本题要对数据进行简单的判断,可以节省编程时间。本题叙述不够充分,其实暗中已经示意高级珍珠的价格高于低级珍珠价格,即珍珠价格由低级到高级递增。略微有些坑,不过WA几次就能推断出来。

    代码:

     1 // Problem#: 2502
     2 // Submission#: 1754411
     3 // The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
     4 // URI: http://creativecommons.org/licenses/by-nc-sa/3.0/
     5 // All Copyright reserved by Informatic Lab of Sun Yat-sen University
     6 #include <iostream>
     7 using namespace std;
     8 
     9 int cost[100];
    10 int q[100],p[100];
    11 
    12 inline int min(int a, int b){
    13     return a<b?a:b;
    14 }
    15 
    16 
    17 int main(){
    18     int num,re;
    19     cin >> num;
    20     for( int i=0 ; i<num ; i++ ){
    21     cin >> q[i];
    22     if( i>0 ) q[i] += q[i-1];
    23     }
    24     for( int i=0 ; i<num ; i++ )
    25     cin >> p[i];
    26     for( int i=0 ; i<num ; i++ ){
    27     cost[i] = ( q[i]+10 ) *p[i];
    28     for( int j=0 ; j<i ; j++ )
    29         cost[i] = min((q[i]-q[j]+10)*p[i]+cost[j],cost[i]);     
    30     }
    31     cout << cost[num-1] << endl;
    32     return 0;
    33 }                                 
  • 相关阅读:
    ubuntu 14.04安装 ruby on rails
    antVue--a-cascader级联组件使用触发loadData方法注意事项
    Canvas标签width属性和css的width属性
    " != "和" !== "
    进度条实现简易demo
    从HTML看代码组织与优化
    听着好像很牛的特效——幽灵按钮DOM
    JavaScript的面向对象编程(OOP)(三)——聚合
    JavaScript的面向对象编程(OOP)(二)——原型
    JavaScript的面向对象编程(OOP)(一)——类
  • 原文地址:https://www.cnblogs.com/ciel/p/2876745.html
Copyright © 2011-2022 走看看