日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

uva 11400 - Lighting System Design(动态规划 最长上升子序列问题变型)

發布時間:2025/3/21 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 uva 11400 - Lighting System Design(动态规划 最长上升子序列问题变型) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本題難處好像是在于 能夠把一些燈泡換成電壓更高的燈泡以節省電源的錢 。所以也才有了對最優方案的探求

好的處理方法是依照電壓從小到大排序。僅僅能讓前面的換成后面的。也就滿足了把一些燈泡換成電壓更高的燈泡 的要求;

一種電壓的燈泡,要么不換。要換則應該全換:換。說明用當前的電源不值;而既然不值則應該所有換掉以避免使用當前電源,不然即添加了燈泡費用又沒節省電源費用,虧大了。。。

狀態轉移詳見代碼

#include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int maxn = 1010;struct lamp {int v,k,c,l; }a[maxn]; int n,v1,k1,c1,l1; int s[maxn]; int d[maxn]; bool cmp(lamp a1,lamp a2) {return a1.v<a2.v; } int main() {while(scanf("%d",&n)!=EOF){if(n==0) break;memset(s,0,sizeof(s));memset(d,0,sizeof(d));memset(a,0,sizeof(a));for(int i=1;i<=n;i++){scanf("%d%d%d%d",&v1,&k1,&c1,&l1);a[i].v=v1;a[i].k=k1;a[i].c=c1;a[i].l=l1;}sort(a+1,a+n+1,cmp);s[0]=0;for(int i=1;i<=n;i++){s[i]=s[i-1]+a[i].l;}d[0]=0;for(int i=1;i<=n;i++){for(int j=0;j<i;j++){if(j==-0)d[i]=(s[i])*a[i].c+a[i].k;elsed[i]=min(d[j]+(s[i]-s[j])*a[i].c+a[i].k,d[i]);}}printf("%d\n",d[n]);}return 0; }

總結

以上是生活随笔為你收集整理的uva 11400 - Lighting System Design(动态规划 最长上升子序列问题变型)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。