• UVa 11400 Lighting System Design


    题意:

    一共有n种灯泡,不同种类的灯泡必须用不同种电源,但同一种灯泡可以用同一种电源。每种灯泡有四个参数:

    电压值V、电源费用K、每个灯泡的费用C、所需该种灯泡的数量L

    为了省钱,可以用电压高的灯泡来代替电压低的灯泡。输出最小费用。

    分析:

    每种电源的灯泡要么不换要么全换,因为只换部分的话,两种类型的电源都要买,不划算。

    将电压从小到大排序,s[i]表示前i种灯泡一共需要多少个灯泡,d[i]表示前i种灯泡最少费用。

    d[i] = min{d[j] + (s[i] - s[j]) * c[i] + k[i]} (j = 0,,,i-1) (表示前j种灯泡用最优解,第j+1~i 种都被第 i 种灯泡所替换而且用第i种电源)

     1 //#define LOCAL
     2 #include <iostream>
     3 #include <cstdio>
     4 #include <cstring>
     5 #include <algorithm>
     6 using namespace std;
     7 
     8 const int maxn = 1000 + 10;
     9 struct Lamp
    10 {
    11     int v, k, c, l;
    12     bool operator< (const Lamp& a) const
    13     {
    14         return v < a.v;
    15     }
    16 }lamps[maxn];
    17 int s[maxn], d[maxn];
    18 
    19 int main(void)
    20 {
    21     #ifdef LOCAL
    22         freopen("11400in.txt", "r", stdin);
    23     #endif
    24 
    25     int n;
    26     while(scanf("%d", &n) == 1 && n)
    27     {
    28         for(int i = 1; i <= n; ++i)
    29             scanf("%d%d%d%d", &lamps[i].v, &lamps[i].k, &lamps[i].c, &lamps[i].l);
    30         sort(lamps + 1, lamps + 1 + n);
    31         s[0] = 0;
    32         for(int i = 1; i <= n; ++i)    s[i] = s[i-1] + lamps[i].l;
    33 
    34         d[0] = 0;
    35         for(int i = 1; i <= n; ++i)
    36         {
    37             d[i] = d[i-1] + lamps[i].c * lamps[i].l + lamps[i].k;    //用第i种灯泡和电源
    38             for(int j = 0; j < i; ++j)
    39             {//前j种灯泡用最优解,第j+1~i 种都被第 i 种灯泡所替换而且用第i种电源
    40                 d[i] = min(d[i], d[j] + (s[i] - s[j]) * lamps[i].c + lamps[i].k);
    41             }
    42         }
    43         printf("%d
    ", d[n]);
    44     }
    45 
    46     return 0;
    47 }
    代码君
  • 相关阅读:
    继承LIst 的类JSON序列化,无法序列化属性的问题
    C#深入学习:泛型修饰符in,out、逆变委托类型和协变委托类型
    12.Java web--过滤器与监听器
    11.Java web—servlet
    10.Java web—JavaBean
    9.Java web—JSP内置对象
    8.Java web—JSP基本语法
    Ubuntu 插入鼠标自动禁用触控板
    Ubuntu安装VLC播放器
    Ubuntu快捷键
  • 原文地址:https://www.cnblogs.com/AOQNRMGYXLMV/p/3999383.html
Copyright © 2020-2023  润新知