题意:

给定n(n≤1000)n(n≤1000) 种类型灯泡,每个灯泡给出其电压v(v≤132000)v(v≤132000) ,电源花费k(k≤1000)k(k≤1000) ,每个灯的花费c(c≤10)c(c≤10) 和需求量l(1≤l≤100)l(1≤l≤100) 。现在通过用电压大的灯泡替换某些电压小的灯泡来减小总花费,求最小的花费。

思路:

每种灯泡要么不换要么全换 ,按电压从小到大对灯泡进行排序,设s[i](1<=i<=n)为前i种灯泡的和,d[i](1<=i<=n)为前n种灯泡最小的花费,d[i] = min{d[j]+(s[i]-s[j])*c[i]+k[i]},表示前j个用最优方案买,第j+1~i个都用i号电源,答案为d[n]。

#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<map>
#include<set>
#include<vector>
#include<queue>
#include<sstream>
#include<cctype>
#pragma GCC optizmize(3)
using namespace std;const int N = 1010;
const int INF = 0x3f3f3f3f;
struct bulb {int v, k, c, l;
}b[N];
bool cmp(bulb x, bulb y) {return x.v < y.v;
}int main() {int n;while(cin>>n && n) {for(int i=1; i<=n; i++)cin>>b[i].v>>b[i].k>>b[i].c>>b[i].l;sort(b+1, b+n+1, cmp);int s[N], d[N];s[0] = 0;for(int i=1; i<=n; i++)s[i] = s[i-1] + b[i].l;memset(d, INF, sizeof(d));d[0] = 0;for(int i=1; i<=n; i++)for(int j=0; j<i; j++)d[i] = min(d[j] + (s[i] - s[j]) * b[i].c + b[i].k, d[i]);cout<<d[n]<<endl;}
}

代码:

UVA11400(dp)相关推荐

  1. UVA11400:简单dp

    UVA11400 题解: 每次都不换或全部把电压小的用电压大的替换掉,因为不全部换掉就有两个电源. 把灯泡按电压从小到大排序.这样换的时候直接用后面的换前面的. dp[i]表示用1到i中几种灯泡的最小 ...

  2. UVA11400 简单DP

    题意 有n种灯,每种灯分别需要电压v,电压为v的电源k元,每个灯c元,一共需要l个灯.为了节约电源费用,可以用高电压灯代替低电压灯.求采购灯和电源的最低费用. 题解 首先对灯按电压进行排序,dp[i] ...

  3. [线性dp] Lighting System Design UVa11400

    题意 你的任务是设计一个照明系统.一共有n种灯泡可选,不同的灯泡需要不同的电源,而同一种灯泡可以共用一个电源.每种灯泡用4个值表示,所需电压V,电源价格K,灯泡单价C,所需个数L.为节省费用,可以用高 ...

  4. UVA11400 照明系统设计 Lighting System Design(线性DP)

    整理的算法模板合集: ACM模板 传送门 因为只能被电压更高的灯泡替换,所以我们按照电压排序,相当于是一个上升子序列,或者说找一个上升子序列 每一种灯泡都有一个需求量,相当于用这个灯泡就需要买这么全部 ...

  5. 例题9-6 UVa11400 Lighting System Design(DP)

    题意: 看白书 要点: 其他的白书上讲的比较清楚了,状态转移方程为:d[i] = min(d[i], d[j] + (s[i] - s[j])*bulb[i].c + bulb[i].k),有点难以理 ...

  6. Uva 11400 - Lighting System Design (DP)

    题目链接 https://cn.vjudge.net/problem/UVA-11400 [题意] 你的任务是设计一个照明系统,一共有n(n<=1000)个灯泡可以选择,不同种类的灯必须使用不同 ...

  7. Lighting System Design UVA - 11400 dp 更换灯泡

    题目链接:https://vjudge.net/problem/UVA-11400 紫书P275 题意:输入为电压.电源费用.灯泡单价.所需灯泡数量.电压低得灯泡可以被电压高的灯泡替换,求最小花费. ...

  8. dp,sp,px相互转化

    方法一: public int sp2px(float sp) {return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, ...

  9. [JS][dp]题解 | #打家劫舍(一)#

    题解 | #打家劫舍(一)# 题目链接 打家劫舍(一) 题目描述 描述 你是一个经验丰富的小偷,准备偷沿街的一排房间,每个房间都存有一定的现金,为了防止被发现,你不能偷相邻的两家,即,如果偷了第一家, ...

最新文章

  1. awk1.0 — awk基础
  2. mac终端命令-----常规操作
  3. Linux学习笔记-基本操作2
  4. Ubuntu 12.04 图形界面问题解决 开机死机
  5. EntityFramework附加实体
  6. qt mysql读写_QT读写Sqlite数据库
  7. C#替换字符串起始/结尾指定的字符串
  8. 用异或的性质实现简单加密解密
  9. 给Python初学者的入门课程建议
  10. oracle 数据库汉字乱码
  11. 物联网常用天线,按照使用场景分类,主要有哪些?
  12. 夏普Sharp AR-C260M PS 一体机驱动
  13. 19-备忘录模式Quarkus实现
  14. EXCEL设置下拉选项,选项带颜色
  15. oracle 主键、唯一键值、唯一索引关系
  16. 查看Linux的核数和内存等相关系统配置
  17. Java笔记总结(一)
  18. 电竞英雄联盟数据API接口 - 【英雄联赛统计】API调用示例代码
  19. LayUI动态选项卡iframe使用
  20. GOF设计模式之外观模式(结构型代理模式)

热门文章

  1. MQ-2烟雾传感器检测
  2. GSMA RCS标准的演变
  3. 0019_畸变矫正(单相机标定)
  4. php printer_open 用法_使用printer_write()函数直接从PHP打印
  5. gyp: No Xcode or CLT version detected 报错
  6. Elasticsearch:在 Elasticsearch 中使用语言识别进行多语言搜索
  7. 大众点评:下一个百亿公司
  8. KSDK2.0 + Pins Tool 体验
  9. 成都地铁线路图高清大图
  10. 华为荣耀android是什么系统,华为荣耀Magic自主系统梦碎 还是Android操作系统