题目链接:UVA - 11400 Lighting System Design
#include <bits/stdc++.h>
using namespace std;
struct node
{
int v, k, c, l;
}a[1005];
int s[1005], dp[1005];
bool cmp(struct node a, struct node b)
{
return a.v < b.v;
}
int main()
{
std::ios::sync_with_stdio(0);
int n, i, j, k;
while(cin >> n)
{
if(n == 0)break;
memset(s, 0, sizeof(s));
memset(dp, 0x3f3f3f, sizeof(dp));
for(i = 1; i <= n; i++)cin >> a[i].v >> a[i].k >> a[i].c >> a[i].l;
sort(a + 1, a + 1 + n, cmp);
for(i = 1; i <= n; i++)
{
s[i] += s[i - 1];
s[i] += a[i].l;
}
dp[0] = 0;
for(i = 1; i <= n; i++)
{
for(j = 0; j < i; j++)
{
dp[i] = min(dp[j] + (s[i] - s[j]) * a[i].c + a[i].k, dp[i]);
}
}
printf("%d\n", dp[n]);
}
return 0;
}