题意

有n种灯,每种灯分别需要电压v,电压为v的电源k元,每个灯c元,一共需要l个灯。为了节约电源费用,可以用高电压灯代替低电压灯。求采购灯和电源的最低费用。

题解

首先对灯按电压进行排序,dp[i]为0-i盏灯所需要的最低费用,递推dp[i]=min(dp[j]+(d[i]-d[j])*lt[i].c+lt[i].k,dp[i]),lt[i].c为第i盏灯所需要的单价,lt[i].k为第i盏灯电源费用。进行O(n^2)次循环,即可得解。

注意事项

注意dp[0]=0初始化问题

代码

#include <iostream>
#include<cstdio>
#include<algorithm>
#define INF 1e9using namespace std;
int dp[1010],d[1010];typedef struct{int v,k,c,l;
}Light;bool cmp(Light a,Light b){if(a.v>b.v)return false;elsereturn true;
}Light lt[1010];int main()
{//freopen("d://input.txt","r",stdin);//freopen("d://output.txt","w",stdout);int n;while(scanf("%d",&n)){if(n==0)break;for(int i=1;i<=n;i++){scanf("%d%d%d%d",&lt[i].v,&lt[i].k,&lt[i].c,&lt[i].l);}sort(lt,lt+n+1,cmp);for(int i=1;i<=n;i++){dp[i]=INF;}d[0]=0;for(int i=1;i<=n;i++){d[i]=d[i-1]+lt[i].l;//printf("%d\n",d[i]);}dp[0]=0;for(int i=1;i<=n;i++){for(int j=0;j<=n;j++){if(i>j){//printf("%d %d %d %d %d %d\n",i,j,min(dp[j]+(d[i]-d[j])*lt[i].c+lt[i].k,dp[i]),lt[i].k,lt[i].c,dp[i]);dp[i]=min(dp[j]+(d[i]-d[j])*lt[i].c+lt[i].k,dp[i]);}}}printf("%d\n",dp[n]);}return 0;
}

UVA11400 简单DP相关推荐

  1. Codeforces 41D Pawn 简单dp

    题目链接:点击打开链接 给定n*m 的矩阵 常数k 以下一个n*m的矩阵,每一个位置由 0-9的一个整数表示 问: 从最后一行開始向上走到第一行使得路径上的和 % (k+1) == 0 每一个格子仅仅 ...

  2. hdu2067 简单dp或者记忆化搜索

    题意: 小兔的棋盘 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  3. POJ1088:滑雪(简单dp)

    题目链接:  http://poj.org/problem?id=1088 题目要求: 一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小.求可以滑落的最长长度. 题目解析: 首先要先排一 ...

  4. 第三讲 数学与简单DP【完结】

    目录 1205. 买不到的数目 [数学结论题] 1211. 蚂蚁感冒 [模拟 / 推理] 1216. 饮料换购 [简单 / 模拟] 2. 01背包问题 [板子题] 1015. 摘花生 [简单DP] 8 ...

  5. hdu 2881(简单dp)

     题意:n*n的矩阵,里面有m个格子是有任务要去完成的,t,x,y表示要在第t秒到达(x,y)的格子完成任务,问你最多可以完成多少 解题思路:简单dp,将时间排个序后就是LIS #include< ...

  6. P1005 矩阵取数游戏(__int128模板/简单dp)

    转跳P1005 题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的 n \times mn×m 的矩阵,矩阵中的每个元素 a_{i,j}a i,j ​ 均为非负整数.游戏规则如下: 每次取数时 ...

  7. 最少拦截系统,简单dp,(学长说这是贪心?!。。。。。。也是醉了)

     description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天, ...

  8. HDU 1158【简单dp】

    题意:给你一个项目,需要几个月来完成买,同时也给你每个月最少需要的工人数.并且告诉你hiring,firing每个工人的钱数,以及每个月应付每个工人的工资.求项目完成时最小花费. 这是个简单dp,思路 ...

  9. 4.15 每周作业 —— 简单DP

    免费馅饼 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submissi ...

最新文章

  1. CentOS7系统下修改网卡为eth0
  2. legacy引导gpt分区_windows分区模式和启动模式(UEFI+GPT或Legacy+MBR组合)
  3. 演示:GLBP跟踪功能、权值、与不同的负载均衡方式
  4. 3天,把MySQL索引、锁、事务、分库分表撸干净了!
  5. 【数字信号处理】离散时间系统因果性 ( 因果性概念 | 充要条件及证明 )
  6. ege函数库_基于c++ ege图形库实现五子棋游戏
  7. JPA EntityManager详解
  8. c语言在一个文件后面添加数据类型,c语言简单入门之简单运行和数据类型
  9. 连续时间系统与离散时间系统的时域分析对比
  10. H3C 路由器的IPSEC ××× 配置
  11. 深入 Composer autoload
  12. 脚本造成web浏览器运行速度减慢_脚本导致ie运行缓慢|ie8 提示脚本运行缓慢|脚本导致运行速度减慢...
  13. 【渝粤题库】陕西师范大学163208 饭店管理 作业
  14. 导航网站盈利模式及发展展望
  15. 2020 蓝桥杯大学模拟赛(三) - 程序设计:养猫题解
  16. 虾皮马来西亚站如何选品?附快速出单秘诀
  17. 做了快6年研发的女程序员,转行做什么合适呢?
  18. HDU 2022 海选女主角
  19. awg线径与电流_AWG_线径电流
  20. 有个程序猿很忧桑:一个命令rm -rf/ ,他把整个公司删没了

热门文章

  1. soc 设计soc设计 uml实务手册_企业内训“软件需求设计建模方法学全程实例剖析”训练方案(2020年)...
  2. 【论文笔记】Generative Adversarial Frontal View to Bird View Synthesis - 论文阅读笔记
  3. 用力和应变片计算弹性模量_材料弹性模量及泊松比测试实验教案.
  4. 基于python的股票程序化交易论文_基于Python工具的股票量化投资策略研究
  5. 什么是drop-in item renderer
  6. 公司裁员不想给补偿,竟然耍这些不要脸的裁员手段..
  7. oracle维护服务 oracle解决方案 oracle售后服务
  8. DAS、SAN、NAS三种存储方式的概念及应用
  9. Micro-cap导入元件库
  10. 学术届职称与凡人修仙传等级对应关系