题目大意:

买珍珠,每买一种珍珠需要额外付出十个这种珍珠的钱,但你可以买比这种珍珠高品质的珍珠来替换它(那么就只需要那高品质付出那额外的十个珍珠的钱了,但是每个珍珠的价钱也变化了)

这是一个dp。

令dp[i]为只买前i种珍珠的最少花费钱数,

状态转移方程为dp[i] = min(dp[i],dp[j]+sum);

这里j<i, sum为j之后到i种珍珠均用第i种珍珠替换所需要的钱数;

sum是很好解决的。

那么有人问了,这个状态转移只能求第i种只替换前面连续种珍珠的情况,如果是像1和3都用第三种珍珠替换,而第二种自己买你的不就不能求了。也就是说如果某种珍珠需要替换前面不连续的几种的话怎么办呢?

现在我们来证明那种情况是不存在的。

我们设每种的价格为xi,每种需要买的个数为ni,每买一种需要额外付出的钱数为ci。

情况一为1,3种珍珠一起买,2珍珠单独买;

那么需要(n1+n3+10)*x3+(n2+10)*x2;

情况2为1,2种珍珠一起买,3珍珠单独买;

则需要(n3+10)*x3+(n1+n2+10)*x2;

如果情况一比情况2学要的钱数少,列不等式可得x3<=x2。

那么2种珍珠也应该用3来替换这样显然更省钱(少付了额外十个2种珍珠的钱);

所以1用3替换那么2就肯定也用3来替换;

推广起来;

如果某一种珍珠替换了前面不连续种珍珠为最优解;

那么就说明替换的最前面珍珠的后面那些没替换的珍珠的单价大于用来替换的珍珠的单价;

那么那些没替换的替换点显然为更优解,所以被替换的珍珠必然不能是不连续的,而且要紧挨着用来替换的珍珠;

证明完毕;

上代码;

#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
const int maxa = ;
int sum[maxa];
int dp[maxa];
int a[maxa], b[maxa];
int main(){
int t, n;
scanf("%d", &t);
while(t--){
scanf("%d", &n);
for(int i = ; i <= n; i++){
scanf("%d%d", &a[i], &b[i]);
sum[i] = sum[i-] + a[i];
}
for(int i = ; i <= n; i++){
int mina = (<<);
for(int k = ; k < i; k++){
mina = min(mina, dp[k] +(sum[i] - sum[k]+)*b[i]);
}
dp[i] = mina;
}
printf("%d\n", dp[n]);
}
}

acm poj1260 dp的更多相关文章

  1. 【codeforces 415D】Mashmokh and ACM(普通dp)

    [codeforces 415D]Mashmokh and ACM 题意:美丽数列定义:对于数列中的每一个i都满足:arr[i+1]%arr[i]==0 输入n,k(1<=n,k<=200 ...

  2. 【转载】ACM总结——dp专辑

    感谢博主——      http://blog.csdn.net/cc_again?viewmode=list       ----------  Accagain  2014年5月15日 动态规划一 ...

  3. Codeforces Round #240 (Div. 1)B---Mashmokh and ACM(水dp)

    Mashmokh's boss, Bimokh, didn't like Mashmokh. So he fired him. Mashmokh decided to go to university ...

  4. bzoj 1030: [JSOI2007]文本生成器 (ac自己主动机上的dp)

    1030: [JSOI2007]文本生成器 Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 2635  Solved: 1090 [id=1030&qu ...

  5. WOJ1022 Competition of Programming 贪心 WOJ1023 Division dp

    title: WOJ1022 Competition of Programming 贪心 date: 2020-03-19 13:43:00 categories: acm tags: [acm,wo ...

  6. 【题解】SDOI2014数数

    真的很开心呢,总算是有一道完完全全由自己做出来的题目啦~ 这一道题目洛谷P3311和另一道JSOI文本生成器的题目是十分相像的,dp方面几乎相同.只是<=n的约束,让这道题目必须结合数位dp的方 ...

  7. DP(Dynamic programming)——尽力学习之中(2016 HUAS ACM 暑假集训-5)

    这周不打算按照以往的方式更新博客,而是采用整体的方式.一是因为学的太少,没东西写:二是这篇博客会经常更新的.如题,DP——尽力学习之中. ------------------------------- ...

  8. HDU 4064 Carcassonne(插头DP)(The 36th ACM/ICPC Asia Regional Fuzhou Site —— Online Contest)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4064 Problem Description Carcassonne is a tile-based ...

  9. 2016 ACM/ICPC Asia Regional Shenyang Online 1009/HDU 5900 区间dp

    QSC and Master Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...

随机推荐

  1. 微软office MIME类型

      后缀 MIME 類型 .docx application/vnd.openxmlformats-officedocument.wordprocessingml.document .docm app ...

  2. C++快速排序实现(quicksort)

    quicksort:分治思想. 分解:数组A[p, r)被划分成两个子数组A[pq) 和 A[q+1, r),使得A[pq)中的每个元素小于等于A[q], A[q]也小于A[q+1r)中的每个元素.q ...

  3. var genreModel =storeDB.Genres.Include("Albums").Single(g => g.Name == genre);是什么意思?

    g => g.Name == genre代表一个匿名函数.即这里向Single方法传入了一个方法类型的参数. =>左边的g代表方法的参数,可以有多个,如(g,f) => ...,=& ...

  4. JS版本网站资源状态检测

    Title:JS版本网站资源状态检测  --2012-08-28 14:08 前几天需要一个网站状态检测的东东,后面写了个蹩脚的JS版本,里面用到了以前没用过的东西,在这里记下来,其实批处理加curl ...

  5. Cracking the coding interview--Q1.3

    原文 Given two strings, write a method to decide if one is a permutation of the other. 译文 给你两个字符串,写一个方 ...

  6. Web.Config 对静态文件 js css img 的客户端缓存策略

    <?xml version="1.0" encoding="utf-8"?> <configuration> <system.we ...

  7. 找到 OSChina 早上 8 点钟容易宕机的原因 ?

    最近一段时间,OSChina 网站在早上 8 点出头的时候很容易因为数据库连接池爆满而导致网站宕机.表现的情况是数据库处理大量的查询,堆积大量并发连接,导致无法再连接到数据库,执行一个简单的查询速度也 ...

  8. 利用ftrace跟踪内核static tracepoint——实例writeback event

    摘要:和很多linux内核子系统一样,static tracepoint有很多层次,其中某个层次都展示给不同层次的开发者来满足他们的不同需求.关于linux tracepoint的详细信息,我们可以在 ...

  9. BZOJ3410: [Usaco2009 Dec]Selfish Grazing 自私的食草者

    3410: [Usaco2009 Dec]Selfish Grazing 自私的食草者 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 47  Solve ...

  10. java中protect属性用法总结

    测试代码: pojo类: package com.lky.h1; public class Base { private Integer id; protected String name; publ ...