POJ 1260 简单dp问题 Pearls

二分查找--天堂珍珠(珍珠项链)pearl 题目如下:                                                                                                                                          天堂_珍珠pearl Description  我有很多很多(n条)用魔法合成的珍珠项链……(其实神仙比凡人 阅读详情
Pearls
Time Limit: 1000MS      Memory Limit: 10000K
Total Submissions: 9680     Accepted: 4946
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

题目大意:给你T组样例,每组样例有n个等级的珍珠。然后有n行,等级呈上升序列输入,每行两个数 需要买的数量p和价格c。买珍珠时有两种购买方法,第一种是分开买,但是没买一种等级的珍珠就会多加10*c(此等级珍珠的价格)。第二种是用等级高的珍珠来替换等级低的珍珠。让你求最小花费。

思路:这道题目明显可以先将dp数组中存上全部买高一等级的珍珠的总花非费。然后在通过和 将其一个一个分开买进行比较,取小值然后更新dp数组,最后输出dp{n},则就是你要求的结果。

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <string.h>

using namespace std;
const int N=1e5+10;

struct F
{
    int p,c;
} a[N];
int dp[N];
int sum[N];

int main()
{
    int T;
    cin>>T;
    while(T--)
    {
        memset(a,0,sizeof(a));
        memset(dp,0,sizeof(dp));
        memset(sum,0,sizeof(sum));
        sum[0]=0;
        int n;
        cin>>n;
        for(int i=1; i<=n; i++)
            cin>>a[i].p>>a[i].c,sum[i]=sum[i-1]+a[i].p,dp[i]=(10+sum[i])*a[i].c;//dp中存的全买一样的花费
        for(int i=1;i<=n;i++)
            for(int j=i-1;j>=1;j--)
        {
               dp[i]=min(dp[i],(sum[i]-sum[j]+10)*a[i].c+dp[j]);//和 分开买花费比较
        }

        cout<<dp[n]<<endl;
    }
    return 0;
}
四足机器人机械结构设计:从腿型到驱动的全面解析 本文全面解析了四足机器人机械结构设计的核心要点。资深工程师老张深入探讨了并联腿与串联腿的选型策略、不同腿型布局对稳定性的影响,并详细对比了皮带轮与连杆驱动方式的优劣。文章结合实战经验,强调了足端设计、材料选择及整体结构轻量化等关键细节,为机器人开发者提供了从理论到实践的宝贵指导。 阅读详情

相关推荐

护网日志分析基础

简要介绍日志分析,给出日志分析的步骤和思路。要求根据日志中的字符串特征,识别攻击者的攻击工具;根据日志中的行为特征,确定攻击者可能的攻击手段等。总结归纳护网中常见的中间件Tomcat、Apache、Weblogic、Nginx、Apache、IIS、MySQL、SQL Server、Oracle的日志路径和日志配置文件路径等。

m0_59302403的博客 3694

POJ 1260-Pearls 动态规划

<br />题目来源:http://124.205.79.250/JudgeOnline/problem?id=1260<br /> <br />解题报告:<br /> <br />一开始觉得可以用贪心算法,后来发现是不对的,比方说对如下的测试数据:<br />10 10<br />5  15<br />10 23<br />就不行了。还是要用动态规划来解<br /> <br />我设f[k]代表只买前k个,可以花的最少的钱。<br />则<br />f[k]=min( (a1+a2+...+ak+10)*

kindlucy的专栏 2282

SVM-支持向量机学习(1):线性可分SVM的基本型

1. foreword先看的是李航老师的书第7章,比较传统按照以下三节展开: 线性可分SVM 线性SVM 非线性SVM SMO算法 李航老师讲东西向来不拖泥带水,但本节也几乎用了40页的篇幅,足见涉及内容之多。7月底硬着头皮啃了下来,边看边在笔记上摘抄标注,花了2天时间对SVM有了基本认识。一个月过去了,如今重新整理为博客,再看轻松许多,并不断对比西瓜书的内容,启望达到融会贯通。西瓜书此节明显节奏轻

鸟恋旧林的博客 8679

POJ1260-Pearls【贪心的错误与dp的思路】

题目大意 大致题意: 给出几类珍珠,以及它们的单价,要求用最少的钱就可以买到相同数量的,相同(或更高)质量的珍珠。 【规定买任一类的珍珠n个(价格为p),都要支付(n+10)p的钱,即额外支付10p】 样例分析 例如样例Input的第二个例子: 3 1 10 1 11 100 12 需要买第一类1个,第二类1个,第三类100个 按常规支付为 (1+10)*10 + (1+10)*11 + (100+10)*12 = 1551元(一共买了102个珍珠) 但是如果全部都按照第三类珍珠的价格支付,同样是买102个

csyifanZhang的博客 328

DDR4 IP的用户接口

DDR4 IP核用户接口

bowen_wener的博客 1925

二次开发vba_CATIA VBA(VBS)二次开发:使用Search批量选择元素

在CATIA二次开发中很多在程序中进行自动交互的方法或函数都需要使用选择集作为参数,将几何元素按照要求批量添加到选择集中也是实现程序自动运行的有效方法。在前面的文章《CATIA使用VBA(VBS)二次开发时用户的交互选择》和《CATIA使用VBA(VBS)二次开发时工程图和草图位置的交互选择函数Indicate2D》中介绍了在CATIA VBA(VBS)二次开发中用户和选择集之间的交互操...

weixin_32497403的博客 1321

POJ-1260 Pearls 【DP】

题目链接 题意 某公司需采购c种珍珠,知道每种珍珠的价格和需要的量。购买时,若要买某种珍珠,需额外支付10个该种珍珠的价钱。同时价格低的珍珠可以用价格高的珍珠代替。求最少能花多少钱完成采购。 分析 解决本题关键要想到这一点: 若第i种珍珠可以被第j种珍珠代替(i< j且珍珠价格递增),则第i~j-1种珍珠都应当被第j种珍珠代替。 证明很简单,...

babao9492的博客 170

jenkins连接外部k8s集群

k8s连接集群外Jenkins

liuchao666888的博客 1527

【poj 1260】Pearls 题意&题解&代码(C++)

poj dp

曾经追梦的happy时光 565

基于知识图谱的智能决策系统

作者:禅与计算机程序设计艺术 1.简介 知识图谱(Knowledge Graph)最早由美国斯坦福大学的Jure Sifne等人于2013年提出,它是一个用于存储、整理和推理复杂多变的网络结构信息的数据模型。它的基本特征是每个事实都有一个统一的标识符ID,并且可以以图形的方式展示各种关系及其边缘。因此,

AI天才研究院 2183

【同等学力】01-逻辑符号表达

F(x): x是确诊者,G(x):x有症状F(x): x是老人,G(x):x是宠物,L(x,y): x喜欢y。

super_mochi1 1880

dp 简单例题poj 1260 Pearls

poj 1260 Pearls点击打开链接在抱着题解磕了几道dp题后对于这题终于是有了一点思路(很水的dp大佬勿喷)。题意:给出珍珠的价格Price和需要买的数量Count。共t组数据,每组n类珍珠。先给出的珍珠价格一定不大于后给出的珍珠,每多买一类珍珠,你要多付该类珍珠 单价*10的价格,低价格的珍珠可以由高价格的珍珠来代替。求,购买完所有...

weixin_30315435的博客 84

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

poj 1260 dp

poj 1260Pearls 大致题意:现在有很多按品质升序排列,当然价格也是,的不同种类的珠宝。为防止只够买一个,顾客需要买所需个数再额外加10个。也可以将这些珠宝升级品质,看是否可以省钱,问你买这么多数量的珠宝最少花多少钱。 输入 第一行:几个cases 第一个case 第一行:珠宝种类n种,接下来n行,是目标购买个数和单价。 输出:最少花的钱 example: Input: 2

mars_ch的博客 602

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【POJ 1260】Pearls

【POJ 1260】Pearlsdp问题 最近做背包做多了 一做动规就往背包想…… 这题其实也有点背包的意思(然而只是做背包做的看啥都像背包……c件物品 有各自的数量a 和价值p 每进行一次交易的花费cost = (物品数+10)*价格 低价物品可以用高价一起购买 一次交易只能按照一种价值购买初始dp[0] = 0 dp数组下标为物品件数 枚举物品种类 没枚举一种物品 遍历该物品之前物品量

ACMer' 1235

【Poj 1260】 Pearls dp

Pearls Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 8316 Accepted: 4150Description In Pearlania everybody is fond of pearls. One company, called The Royal Pearl, produces a lo

ATOD 738

poj 1260 Pearls dp

Pearls Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7947   Accepted: 3949 Description In Pearlania everybody is fond of pearls. One company, called The

kimnoic的专栏 400

poj1260Pearls(dp)

题目链接:http://poj.org/problem?id=1260 具体思路: 首先,所需珍珠的数目是固定的,而且每种珍珠所需的数目,可以使用比此种珍珠珍贵(就是价格高的)的珍珠所替代,其次,题目所给珍珠的顺序是按价格由低到高给的,我们可以发现一个规律,珍珠不能隔着种类交换,就是说假设一共三类珍珠,第一种如果需要用第三种替代的话,那么第二种也必须被第三种替代,如果不这么做的话那么第二种需要单...

qq_46536902的博客 81

poj 1260 Pearls 斜率优化dp

这个题目数据量很小,但是满足斜率优化的条件,可以用斜率优化dp来做。         要注意的地方,0也是一个决策点。 #include #include #include using namespace std; const int maxn=1e2+9; int dp[maxn]; int a[maxn],p[maxn],sum[maxn]; int que[m

yrleep的专栏 783

POJ 1260 Pearls DP

POJ 1260 Pearls       DP 给出几类珍珠,以及它们的单价,要求用最少的钱就可以买到相同数量的,相同(或更高)质量的珍珠。 【规定买任一类的珍珠n个(价格为p),都要支付(n+10)*p的钱,即额外支付10*p】 例如样例Input的第二个例子: 3 1 10 1 11 100 12 需要买第一类1个,第二类1个,第三类100

became_a_wolf的专栏 344

POJ 1260 Pearls (基础DP)

做一件首饰需要若干珠宝,但是买一种珠宝需要付10个珠宝的手续费,如果我们用更好的珠宝来代替,顾客当然没有意见,所以意思就是通过买更好的珠宝来降低手续费 一道很基础的DP题,但是很容易写成贪心,第一次写的时候我以为写的是DP,结果一化简发现是贪心,还是对DP的理解不够 下面来证明贪心是错误的: 我们有3种珠宝,a,b,c,价格是pa,pb,pc,满足pa 假设贪心得出(a+10)*p

xtq的专栏 700

POJ 1260 Pearls(DP)

题目链接:http://poj.org/problem?id=1260 题意: 按珍珠等级升序给出n种珍珠的个数和价值,每种珍珠可以可以通过购买等级较高的珍珠来代替,问最小价值是多少? 状态转移方程: ①不取代: dp[i]=dp[i-1]+(a[i]+10)*p[i]; ②取代: dp[i]=min(dp[i],dp[j]+(sum[i]-sum[j]+10)*p[i]);

To be excellent! 266
上一篇: Codeforces Round #449 (Div. 2) B. Chtholly's request
下一篇: 2017总结
Puppet__
博客等级 码龄9年 319粉丝 328原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值