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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Buying Feed, 2010 Nov (单调队列优化DP)

發(fā)布時間:2023/12/10 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Buying Feed, 2010 Nov (单调队列优化DP) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

約翰開車回家,又準(zhǔn)備順路買點飼料了(咦?為啥要說“又”字?)回家的路程一共有 E 公里,
這一路上會經(jīng)過 K 家商店,第 i 家店里有 Fi 噸飼料,售價為每噸 Ci 元。約翰打算買 N 噸飼料,他
知道商家的庫存是足夠的,至少所有店的庫存總和不會少于 N。除了購買飼料要錢,運送飼料也是
要花油錢的,約翰的卡車上如果裝著 X 噸飼料,那么他行駛一公里會花掉 X 2 元,行駛 D 公里需要
D X 2 元。已知第 i 家店距約翰所在的起點有 Xi 公里,那么約翰在哪些商店買飼料運回家,才能做到
最省錢呢?


輸入格式
? 第一行:三個整數(shù) K, E 和 N, 1 ≤ K ≤ 10000 , 1 ≤ E ≤ 500 , 1 ≤ N ≤ 500
? 第二行到第 N + 1 行:第 i + 1 行有三個整數(shù) Xi, Fi 和 Ci, 0 < Xi < E, 1 ≤ Fi ≤ 10000, 1 ≤
Ci ≤ 107


輸出格式
? 單個整數(shù):表示購買及運送飼料的最小費用


樣例輸入
2 5 3
3 1 2
4 1 2
1 1 1


樣例輸出
9


解釋
在離家較近的兩家商店里各購買一噸飼料,
則花在路上的錢是 1 + 4 = 5,花在店里的錢是
2 + 2 = 4

?

【分析】

  嗯,啊,還是好笨,想了挺久。

  先列DP,f[i][x]=min(f[j][k]+(x-k)^2*(d[i]-d[j])+(x-k)*c[i]) d[i][x]表示走到i,一共買了x個東西的最小費用。

  但是這樣列的話很難降維,因為答案跟d[j]有關(guān),所以可以用 計算未來費用的思想,就是買的時候直接算他運到終點了。

  f[i][x]=min(f[j][k]+(x-k)*c[i]+(x^2-k^2)*(s-d[i])) 這樣就可以降維了。

  f[x]=min(f[k]+(x-k)*c[i]+(x^2-k^2)*(s-d[i])) i直接for,不過要注意一點是要用的是i之前算出的f而不能是i時計算出的f

  如果沒有限制的話,這樣的方程當(dāng)然存一個最優(yōu)解就好了,但是有限制,就要看限制的單調(diào)性,我們要x-k<=sm[i] 即 k>=x-sm[i]

  x按順序枚舉的話就有單調(diào)性了。

  啊,又是一道限制為主的單調(diào)隊列ORZ、、、

  

代碼如下:

1 #include<cstdio> 2 #include<cstdlib> 3 #include<cstring> 4 #include<iostream> 5 #include<algorithm> 6 #include<queue> 7 #include<cmath> 8 using namespace std; 9 #define Maxn 510 10 #define Maxm 200010 11 #define LL long long 12 13 struct node 14 { 15 LL d,sm,w; 16 }t[Maxn]; 17 18 LL mymin(LL x,LL y) {return x<y?x:y;} 19 LL mymax(LL x,LL y) {return x>y?x:y;} 20 21 bool cmp(node x,node y) {return x.d<y.d;} 22 23 LL q[Maxm],st[Maxm],f[Maxm]; 24 25 int main() 26 { 27 LL v,s,n; 28 scanf("%lld%lld%lld",&v,&s,&n); 29 for(LL i=1;i<=n;i++) scanf("%lld%lld%lld",&t[i].d,&t[i].sm,&t[i].w); 30 sort(t+1,t+1+n,cmp); 31 for(LL i=1;i<=n;i++) t[i].d=s-t[i].d; 32 memset(f,127,sizeof(f)); 33 f[0]=0; 34 int ql,qr; 35 for(LL i=1;i<=n;i++) 36 { 37 ql=qr=1;q[qr]=0;st[qr]=0; 38 for(LL j=1;j<=v;j++) 39 { 40 while(ql<qr&&(j-st[ql])>t[i].sm) ql++; 41 LL now=f[j]; 42 f[j]=mymin(f[j],q[ql]+t[i].d*j*j+t[i].w*j); 43 while(now-j*j*t[i].d-t[i].w*j<=q[qr]&&qr>=ql) qr--; 44 q[++qr]=now-j*j*t[i].d-t[i].w*j;st[qr]=j; 45 } 46 } 47 printf("%lld\n",f[v]); 48 return 0; 49 } View Code

?

?

2016-10-20?09:14:21

?

轉(zhuǎn)載于:https://www.cnblogs.com/Konjakmoyu/p/5979490.html

總結(jié)

以上是生活随笔為你收集整理的Buying Feed, 2010 Nov (单调队列优化DP)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 男女做的视频 | 97精品熟女少妇一区二区三区 | 日韩欧美国产一区二区在线观看 | 亚州精品视频 | 国模人体私拍xvideos | 自拍视频一区 | 啪啪网站视频 | 欧美视频一区二区三区 | 91国偷自产一区二区三区女王 | 久久激情婷婷 | 成人激情免费 | 欧美日韩高清在线 | 日韩视频在线观看免费视频 | 亚州一区二区 | 日韩狠狠操| 激情欧美综合 | 综合激情在线 | 午夜免费在线 | 91在线无精精品一区二区 | 亚洲自拍图片 | 91丨九色 | 一区二区三区黄 | 久久合合 | 久久久中文网 | 动漫av在线免费观看 | 中文字幕乱妇无码av在线 | 成人在线免费观看网站 | 夜夜爽天天干 | 欧美性生活xxx | 一区二区免费av | 天天综合天天综合 | 不卡av电影在线观看 | 久久人妻少妇嫩草av蜜桃 | 天堂av2021| 国产网站在线免费观看 | 五月婷婷免费视频 | 奇米影视第四色7777 | 久久视频在线播放 | 国产精品久久久毛片 | 色婷婷激情av | 五月天婷婷在线观看 | 电影《走路上学》免费 | 优优色综合 | 亚洲欧美精品aaaaaa片 | 一区二区三区精品 | mdyd—856冲田杏梨在线 | 天堂资源中文在线 | 在线亚洲不卡 | 国产精品制服丝袜 | 在线无码va中文字幕无码 | 不卡黄色 | 亚洲精品无码不卡在线播he | 久久夜色精品国产欧美乱极品 | 国产肥白大熟妇bbbb视频 | 国产精品久久久精品 | 苍井空张开腿实干12次 | 福利姬在线播放 | 极品粉嫩小仙女高潮喷水久久 | 亚洲午夜在线播放 | 黄网在线观看视频 | 狠狠爱av | 一区二区三区四区人妻 | 非洲黄色大片 | 久久久精品电影 | 国产偷国产偷av亚洲清高 | 黄色的网站免费看 | 1769国产精品视频 | 激情精品 | 久久影院一区 | 中文字幕日韩在线播放 | 91女人18毛片水多国产 | 国产精品12页 | 色就是色欧美 | 激情在线观看视频 | 色倩网站 | 日日碰狠狠添天天爽 | 操女人网| 欧美一级免费视频 | 伊人黄色 | 日韩视频免费观看高清完整版 | wwwxxx在线播放 | 可以看污的网站 | 天天综合中文字幕 | 欧美精品播放 | 麻豆精品国产精华精华液好用吗 | 黑人巨大精品欧美黑寡妇 | 精品在线一区二区三区 | 91黑丝在线观看 | 国内激情视频 | 日本精品三区 | 成人黄色在线免费观看 | 丰满人妻一区二区三区免费视频 | 午夜av导航 | 国产后入清纯学生妹 | 中文字幕av一区二区三区人妻少妇 | 91大神精品在线 | 亚洲中文字幕久久无码 | 91www| 在线看污视频 |