• 20170213设计照明系统


                                                                                  20170213设计照明系统

    难度级别:C;            运行时间限制:1000ms; 运行空间限制:51200KB; 代码长度限制:2000000B

    设计一个照明系统。共有n种灯泡供你选择,不同种类的灯泡必须使用不同种类的电源,但同一种灯泡可以共用一个电源。所有灯泡的电流参数相同,电压不同。现在给你每种灯泡的四个参数:电压V,电源费用K,每个灯泡的价格C,以及需要该种灯泡的数量L。为了减少费用,你可以把电压低的灯泡换成电压更高的灯泡,而省出电源的费用(某种灯泡全换成别的种类,就可以共用别的电源,从而少配一个电源,不就节约了一个电源的费用吗?)。请你配置方案,使系统造价最小。新的方案标准不能降低,灯泡的数量不能减少,电流相同、电压高的灯泡功率也更大,也会更亮。

    第一行包括一个正整数n,接下来的n行,每行描述一种灯泡的参数,分别为V,K,C和L。两数之间用一个空格分隔。

    一个数表示电源的最小费用。

    3

    12 300 10 30

    18 400 15 28

    30 500 13 30

    1644

     1 #include<iostream>
     2 #include<algorithm>
     3 #include<stdio.h>
     4 #include<memory.h>
     5 using namespace std;
     6 int dp[10010],s[11000];
     7 struct node    //结构体,电压V,电源费用K,每个灯泡的价格C,需要该种灯泡的数量L
     8 {
     9     int v,k,c,l;     //四个变量名称 
    10     bool operator < (const node & a ) const      //针对a[ ].v进行排序,这就是一个模块,要记住!!! 
    11     {
    12         return v <a.v;
    13     }
    14 }A[1005];
    15 int main()
    16 {
    17     int n,i,j,g;
    18     cin>>n;
    19     for(i=1;i<=n;i++) cin>>A[i].v>>A[i].k>>A[i].c>>A[i].l;      //输入 
    20     sort(A+1,A+n+1);  //a[1].v~a[n].v从小到大。 
    21     for(i=1;i<=n;i++) s[i]=s[i-1]+A[i].l; //前缀和(这样就可以快速的算出从一到n的A[i].l) 
    22     memset(dp,27,sizeof(dp));
    23     dp[0]=0;
    24     for(i=1;i<=n;i++)
    25         for(j=0;j<i;j++)
    26             dp[i]=min(dp[i],dp[j]+(s[i]-s[j])*A[i].c+A[i].k);
    27     cout<<dp[n];
    28 }
    代码
  • 相关阅读:
    前端综合练习与bootstrap
    05-前端之jQuery
    03-初识JavaScript
    02-初识CSS
    01-前端初识和body标签中的相关标签
    程序员笔记
    windows和Ubantu双系统安装图解
    获取http和ftp地址的图片
    HttpHelper类及调用
    简单的SqlHelper
  • 原文地址:https://www.cnblogs.com/LZHE/p/6393873.html
Copyright © 2020-2023  润新知