Lighting System Design UVA - 11400 照明系统设计 线性结构dp
题目链接
你的任务是设计一个照明系统。一共有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相关推荐
- Lighting System Design UVA - 11400 动态规划
题目:题目链接 思路:简单的动态规划问题,先把灯泡按照电压从小到大排序.设s[i]为前i种灯泡的总数量(即L值之和),d[i]为灯 泡1-i的最小开销,则d[i] = min{d[j] + (s[i] ...
- Lighting System Design UVA 11400 (dp+思维)
题目大意:有一个照明系统需要用到n种灯,每种灯的电压为V,电源费用K,每个灯泡费用为C,需要该灯的数量为L.注意到,电压相同的灯泡只需要共享一个对应的电源即可,还有电压低的灯泡可以被电压高的灯泡替代. ...
- Lighting System Design UVA - 11400 dp 更换灯泡
题目链接:https://vjudge.net/problem/UVA-11400 紫书P275 题意:输入为电压.电源费用.灯泡单价.所需灯泡数量.电压低得灯泡可以被电压高的灯泡替换,求最小花费. ...
- UVa 11400 Lighting System Design
题目:Lighting System Design 题意: 来自luogu-- 给定 n(n≤1000)n(n≤1000) 种类型灯泡,每个灯泡给出其电压 v(v≤132000)v(v≤132000) ...
- UVA - 11400 Lighting System Design(照明系统设计)(dp)
题意:共有n种(n<=1000)种灯泡,每种灯泡用4个数值表示.电压V(V<=132000),电源费用K(K<=1000),每个灯泡的费用C(C<=10)和所需灯泡的数量L(1 ...
- UVA11400 照明系统设计 Lighting System Design(线性DP)
整理的算法模板合集: ACM模板 传送门 因为只能被电压更高的灯泡替换,所以我们按照电压排序,相当于是一个上升子序列,或者说找一个上升子序列 每一种灯泡都有一个需求量,相当于用这个灯泡就需要买这么全部 ...
- 【动态规划】Lighting System Design 照明系统设计
Description 你的任务是设计一个照明系统.一共有n(n≤1000)种灯泡可供选择,不同种类的灯泡必须用不同的电源,但同一种灯泡可以共用一个电源.每种灯泡用4个数值表示:电压值V(V≤1320 ...
- Uva 11400 - Lighting System Design (DP)
题目链接 https://cn.vjudge.net/problem/UVA-11400 [题意] 你的任务是设计一个照明系统,一共有n(n<=1000)个灯泡可以选择,不同种类的灯必须使用不同 ...
- uva 11400 - Lighting System Design(动态规划 最长上升子序列问题变型)
本题难处好像是在于 能够把一些灯泡换成电压更高的灯泡以节省电源的钱 .所以也才有了对最优方案的探求 好的处理方法是依照电压从小到大排序.仅仅能让前面的换成后面的.也就满足了把一些灯泡换成电压更高的灯泡 ...
最新文章
- Mysql INSERT、REPLACE、UPDATE的区别
- java cmd 返回结果_Java调用cmd命令行并返回执行结果
- Navicat Premium mysql
- sql 注射_基本注射/资格赛,范围
- wap(dopra linux )命令,运营商定制的华为光猫Telnet命令恢复华为界面
- LeetCode 1090. 受标签影响的最大值(优先队列)
- 七、内存、寄存器数据的传送
- 关于mysql出现大量locked进程
- android 梯形按钮_PLC编程入门梯形图实例讲解
- C语言--(四)常用运算符
- php来源德育管理系统,西安交通大学城市学院学生服务中心互联网学生工作管理系统...
- PPT图形的多种玩法(师从于珞珈老师)
- cookie用法--抽屉网的自动登录(cookie是通过代码自动获取的)
- 初识二维码 第十八讲 编码转换
- matlab fsolve fzero,Matlab中的fzero和fsolve函数
- Geogebra-球坐标系
- kernel panic - not syncing :fatal exception
- Web前端学习笔记——CSS京东案例、BFC
- linux飞信机器人,安装fetion飞信机器人
- 职业教育/培训研究报告(精选七篇)
热门文章
- 【微服务】矩阵式客户关系管理设计、实现方案
- 搭建svn服务器并自动更新到web服务器
- vmware tools for linux 安装
- u盘容量影响计算机运行速度,U盘怎么提高电脑运行速度?电脑提速实用技巧【详解】...
- 电脑右键刷新有用吗?真的能给电脑提速吗?
- Python读取文件时,出现SyntaxError: (unicode error) ‘unicodeescape‘ codec can‘t decode bytes in position 2-3
- tess4j linux so文件,opencv+tess4jlinux安装
- MFC如何调用Flash
- ValueError: source code string cannot contain null bytes
- navicat for mysql 模型_Navicat for MySQL 功能简介