您的位置:首页 > 其它

UVA 11400 Lighting System Design 【贪心】【DP】

2017-10-12 11:51 471 查看
题目大意

思路

代码

Hit

题目大意

传送门

思路

在本题中,需要理解的一点在于:这些给出的灯泡你必须要用完,也就是说,你可以使用不同的电源来接多个灯泡,但是灯泡必须要用完。

代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct Lamps
{
int v,vs,pri,num;
} l[1100];
bool cmp(Lamps a,Lamps b)
{
return a.v < b.v;
}
int dp[1100],suml[1100],n;
int main()
{
while(cin>>n)
{
if(n==0) break;
suml[0] = 0;
for(int i = 1; i <= n; i++)
{
cin>>l[i].v>>l[i].vs>>l[i].pri>>l[i].num;
}
dp[0] = 0;
sort(l+1,l+n+1,cmp);
for(int i = 1; i <= n; i++)
{
suml[i] = suml[i-1]+l[i].num;
}
for(int i = 1; i <= n; i++)
{
dp[i] = suml[i]*l[i].pri + l[i].vs;
for(int j = i-1; j >= 0; j--)
{
dp[i] = min(dp[i],dp[j]+(suml[i]-suml[j])*l[i].pri+l[i].vs);
}
}
cout<<dp
<<endl;
}
return 0;
}


Hit

原本以为是只用一种灯泡就可以了,一直没有理解题目的意思。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: