uva 11400 Lighting System Design
2016-04-17 17:06
309 查看
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2395
题目解法:由于灯具只能由电压低的转向电压高的,则可以得知这个转换是有序的。友n<1000即n^2的算法可以过。由此我们可以看看能不能推出他的转移方程。我们可以先将灯具按电压由低到高排序,然后按照这个以d[i]=min(d[i],d[j]+(s[i]-s[j])*p[i].c+p[i].k)更新即可。d[i]表示以i种结尾的最小值。s[i]是前i种的灯具总数。
AC:#include <algorithm>
#include <string>
#include <iostream>
#include <string.h>
#include<stdio.h>
#include<cmath>
#include<vector>
using namespace std;
#define ll unsigned long long int
const int maxn=1000+10;
const int inf=100000000;
struct lamp
{
int v,c,k,l;
} p[maxn];
int s[maxn],d[maxn];
bool cmp(lamp a,lamp b)
{
return a.v<b.v;
}
int main()
{
int n;
while(scanf("%d",&n)==1&&n)
{
for(int i=1;i<=n;i++)
{
d[i]=inf;
}
memset(s,0,sizeof s);
for(int i=1;i<=n;i++)
{
scanf("%d%d%d%d",&p[i].v,&p[i].k,&p[i].c,&p[i].l);
}
sort(p+1,p+n+1,cmp);
for(int i=0;i<=n;i++)
{
if(i==0){ s[i]=0; }
s[i]=s[i-1]+p[i].l;
}
for(int i=0;i<=n;i++)
{
if(i==0) d[i]=0;
else for(int j=0;j<i;j++)
{
d[i]=min(d[i],d[j]+(s[i]-s[j])*p[i].c+p[i].k);
}
}
printf("%d\n",d
);
}
}
题目解法:由于灯具只能由电压低的转向电压高的,则可以得知这个转换是有序的。友n<1000即n^2的算法可以过。由此我们可以看看能不能推出他的转移方程。我们可以先将灯具按电压由低到高排序,然后按照这个以d[i]=min(d[i],d[j]+(s[i]-s[j])*p[i].c+p[i].k)更新即可。d[i]表示以i种结尾的最小值。s[i]是前i种的灯具总数。
AC:#include <algorithm>
#include <string>
#include <iostream>
#include <string.h>
#include<stdio.h>
#include<cmath>
#include<vector>
using namespace std;
#define ll unsigned long long int
const int maxn=1000+10;
const int inf=100000000;
struct lamp
{
int v,c,k,l;
} p[maxn];
int s[maxn],d[maxn];
bool cmp(lamp a,lamp b)
{
return a.v<b.v;
}
int main()
{
int n;
while(scanf("%d",&n)==1&&n)
{
for(int i=1;i<=n;i++)
{
d[i]=inf;
}
memset(s,0,sizeof s);
for(int i=1;i<=n;i++)
{
scanf("%d%d%d%d",&p[i].v,&p[i].k,&p[i].c,&p[i].l);
}
sort(p+1,p+n+1,cmp);
for(int i=0;i<=n;i++)
{
if(i==0){ s[i]=0; }
s[i]=s[i-1]+p[i].l;
}
for(int i=0;i<=n;i++)
{
if(i==0) d[i]=0;
else for(int j=0;j<i;j++)
{
d[i]=min(d[i],d[j]+(s[i]-s[j])*p[i].c+p[i].k);
}
}
printf("%d\n",d
);
}
}
相关文章推荐
- SQL绑定变量
- MBTI性格自测
- 设计模式C++学习笔记之一(Strategy策略模式)
- poj2823单调对列和poj3250单调栈
- 第 3 章 HTTP 报文内的 HTTP 信息
- hadoop集群搭建的无密登陆(密钥)---ssh(ssh-keygen -t rsa;scp ../id_rsa.pub >> ./authorized_keys)
- 重识Javascript系列---ECMAScript变量
- 5.虚拟内存的概念、特征以及虚拟内存的实现
- WebSocket(5)-- WebSocket Server
- vcredist_x86.exe 静默安装方法
- [javaEE] Servlet的调用过程和生命周期
- shell中其他值得关注的知识点
- static成员函数访问非static成员
- Android菜单操作之创建并响应菜单
- 网易游戏笔试题:输入一个数n,返回一个数组,数组中每个元素对应[0,n]每个数的二进制中1的个数
- WebSocket(4)-- WebSocket与TCP、Http的关系
- 回文串---吉哥系列故事——完美队形II
- js中时间问题
- 获取java中src目录的方法
- Spring学习笔记(四)-- Spring事务全面分析