(UVA - 11400)Lighting System Design(DP)
2017-08-15 08:41
405 查看
链接: https://vjudge.net/problem/UVA-11400
分析:先按电压从小到大排序,预处理求出1到i的数量和s[i],然后设dp[i] : 灯泡1到i的最小费用
状态转移方程: dp[0]=0;
dp[i]=min(dp[i],dp[j]+p[i].c*(s[i]-s[j])+p[i].k),j
分析:先按电压从小到大排序,预处理求出1到i的数量和s[i],然后设dp[i] : 灯泡1到i的最小费用
状态转移方程: dp[0]=0;
dp[i]=min(dp[i],dp[j]+p[i].c*(s[i]-s[j])+p[i].k),j
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define mem(a,n) memset(a,n,sizeof(a)) const int INF=0x3f3f3f3f; const int N=1e3+5; struct Node { int v,k,c,l; bool operator < (const Node& m)const { return v<m.v; } } p ; int s ,dp ; int main() { int n; while(~scanf("%d",&n)&&n) { 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); s[0]=0; for(int i=1; i<=n; i++) s[i]=s[i-1]+p[i].l; mem(dp,INF); dp[0]=0; for(int i=1; i<=n; i++) for(int j=0; j<i; j++) { dp[i]=min(dp[i],dp[j]+p[i].c*(s[i]-s[j])+p[i].k); // printf("%d %d %d %d\n",p[i].c,p[i].k,s[i],s[j]); // printf("dp[%d]=%d\n",i,dp[i]); } printf("%d\n",dp ); } return 0; }
相关文章推荐
- UVA 11400 Lighting System Design DP
- UVa 11400:Lighting System Design(DP)
- uva 11400 Lighting System Design(dp~)
- UVa 11400 Lighting System Design【DP】
- UVA 11400 Lighting System Design DP
- Lighting System Design - UVa 11400 dp
- UVA 11400 Lighting System Design——dp
- UVA 11400 Lighting System Design 【贪心】【DP】
- UVa 11400- Lighting SystemDesign(DP)
- UVa 11400 - Lighting System Design(DP)
- UVa 11400 Lighting System Design(DP)
- 例题9-6 UVa11400 Lighting System Design(DP)
- UVA 11400 Lighting System Design DP
- uva 11400 Lighting System Design (dp)
- uva 11400 Lighting System Design (DP)
- UVa 11400 - Lighting System Design(DP)
- uva 11400 Lighting System Design dp
- UVA 11400 Lighting System Design(贪心+DP)
- Lighting System Design UVA - 11400 (LIS /DP)
- uva 11400 Lighting System Design (dp)