题目链接

你的任务是设计一个照明系统。一共有n(n≤1000)种灯泡可供选择,不同种类的灯泡必须用不同的电源,但同一种灯泡可以共用一个电源。每种灯泡用4个数值表示:电压值V(V≤132000),电源费用K(K≤1000),每个灯泡的费用C(C≤10)和所需灯泡的数量L(1≤L≤100)。
假定通过所有灯泡的电流都相同,因此电压高的灯泡功率也更大。为了省钱,可以把一些灯泡换成电压更高的另一种灯泡以节省电源的钱(但不能换成电压更低的灯泡)。你的任务是计算出最优方案的费用。
【分析】
首先可以得到一个结论:每种电压的灯泡要么全换,要么全不换。因为如果只换部分灯泡,如V=100有两个灯泡,把其中一个换成V=200的,另一个不变,则V=100和V=200两种电源都需要,不划算(若一个都不换则只需要V=100一种电源)。先把灯泡按照电压从小到大排序。设s[i]为前i种灯泡的总数量(即L值之和),d[i]为灯泡1~i的最小开销,则d[i] = min{d[j] + (s[i]-s[j])*c[i] + k[i])},表示前j个先用最优方案买,然后第j+1~i个都用第i号的电源。答案为d[n]。

#include <iostream>
#include <algorithm>
using namespace std;
const int N =1000+5;
int d[N],s[N];
struct LAMP{int v, k, c, l;bool operator <(LAMP x){return v < x.v;}
}lamp[N];int main(int argc, char** argv) {int n;while(cin>> n && n){for(int i = 1; i <= n; i++)cin>> lamp[i].v>> lamp[i].k >> lamp[i].c>> lamp[i].l;sort(lamp+1, lamp+n+1); s[0] = 0;  for(int i = 1; i <= n; i++){s[i] = lamp[i].l +s[i-1];d[i] = s[i]*lamp[i].c+lamp[i].k; // 前i个灯泡全买类型ifor(int j = 1; j <= i; j++)d[i] = min(d[i],d[j]+(s[i]-s[j])*lamp[i].c+lamp[i].k);}cout<< d[n] << '\n';} return 0;
}

Lighting System Design UVA - 11400 照明系统设计 线性结构dp相关推荐

  1. Lighting System Design UVA - 11400 动态规划

    题目:题目链接 思路:简单的动态规划问题,先把灯泡按照电压从小到大排序.设s[i]为前i种灯泡的总数量(即L值之和),d[i]为灯 泡1-i的最小开销,则d[i] = min{d[j] + (s[i] ...

  2. Lighting System Design UVA 11400 (dp+思维)

    题目大意:有一个照明系统需要用到n种灯,每种灯的电压为V,电源费用K,每个灯泡费用为C,需要该灯的数量为L.注意到,电压相同的灯泡只需要共享一个对应的电源即可,还有电压低的灯泡可以被电压高的灯泡替代. ...

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

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

  4. UVa 11400 Lighting System Design

    题目:Lighting System Design 题意: 来自luogu-- 给定 n(n≤1000)n(n≤1000) 种类型灯泡,每个灯泡给出其电压 v(v≤132000)v(v≤132000) ...

  5. UVA - 11400 Lighting System Design(照明系统设计)(dp)

    题意:共有n种(n<=1000)种灯泡,每种灯泡用4个数值表示.电压V(V<=132000),电源费用K(K<=1000),每个灯泡的费用C(C<=10)和所需灯泡的数量L(1 ...

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

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

  7. 【动态规划】Lighting System Design 照明系统设计

    Description 你的任务是设计一个照明系统.一共有n(n≤1000)种灯泡可供选择,不同种类的灯泡必须用不同的电源,但同一种灯泡可以共用一个电源.每种灯泡用4个数值表示:电压值V(V≤1320 ...

  8. Uva 11400 - Lighting System Design (DP)

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

  9. uva 11400 - Lighting System Design(动态规划 最长上升子序列问题变型)

    本题难处好像是在于 能够把一些灯泡换成电压更高的灯泡以节省电源的钱 .所以也才有了对最优方案的探求 好的处理方法是依照电压从小到大排序.仅仅能让前面的换成后面的.也就满足了把一些灯泡换成电压更高的灯泡 ...

最新文章

  1. Mysql INSERT、REPLACE、UPDATE的区别
  2. java cmd 返回结果_Java调用cmd命令行并返回执行结果
  3. Navicat Premium mysql
  4. sql 注射_基本注射/资格赛,范围
  5. wap(dopra linux )命令,运营商定制的华为光猫Telnet命令恢复华为界面
  6. LeetCode 1090. 受标签影响的最大值(优先队列)
  7. 七、内存、寄存器数据的传送
  8. 关于mysql出现大量locked进程
  9. android 梯形按钮_PLC编程入门梯形图实例讲解
  10. C语言--(四)常用运算符
  11. php来源德育管理系统,西安交通大学城市学院学生服务中心互联网学生工作管理系统...
  12. PPT图形的多种玩法(师从于珞珈老师)
  13. cookie用法--抽屉网的自动登录(cookie是通过代码自动获取的)
  14. 初识二维码 第十八讲 编码转换
  15. matlab fsolve fzero,Matlab中的fzero和fsolve函数
  16. Geogebra-球坐标系
  17. kernel panic - not syncing :fatal exception
  18. Web前端学习笔记——CSS京东案例、BFC
  19. linux飞信机器人,安装fetion飞信机器人
  20. 职业教育/培训研究报告(精选七篇)

热门文章

  1. 【微服务】矩阵式客户关系管理设计、实现方案
  2. 搭建svn服务器并自动更新到web服务器
  3. vmware tools for linux 安装
  4. u盘容量影响计算机运行速度,U盘怎么提高电脑运行速度?电脑提速实用技巧【详解】...
  5. 电脑右键刷新有用吗?真的能给电脑提速吗?
  6. Python读取文件时,出现SyntaxError: (unicode error) ‘unicodeescape‘ codec can‘t decode bytes in position 2-3
  7. tess4j linux so文件,opencv+tess4jlinux安装
  8. MFC如何调用Flash
  9. ValueError: source code string cannot contain null bytes
  10. navicat for mysql 模型_Navicat for MySQL 功能简介