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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

HYSBZ 1010 玩具装箱toy (决策单调DP)

發(fā)布時間:2024/4/17 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HYSBZ 1010 玩具装箱toy (决策单调DP) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

題意:

  有n個玩具,要將它們分為若干組,玩具長度C可能不同。給出n個玩具的擺放順序,連續(xù)的任意多個玩具都可以成為一組。區(qū)間[i,j]成為一組的費用是cost=(j-i+Sigma(Ck)-L)2且i<=k<=j。給定n和L和每個玩具的長度,問分組后費用總和是多少? (n<=5*104)。

?

?

思路:

  轉移方程:dp[i]=min( dp[j]+(sum[i]-sum[j]+i-j+1-L)2 ?)。sum[i]表示前i件玩具長度的總和,0<j<i,(i-j+1)表示與i同組的玩具個數。

  根據方程是可以推出這題是滿足決策單調性的。以下是抄來的證明,稍微修改:

  令f[i]=sum[i]+i, c=1+L,dp[i]=min( dp[j]+(f[i]-f[j]-c)2 ?)

  1.證明決策單調性

  假設在狀態(tài)i處的k決策優(yōu)于j決策,且j<k,那么?dp[k]+(f[i]-f[k]-c)2<=dp[j]+(f[i]-dp[j]-c)2

  而對于i后面的某個狀態(tài)t,設f[t]=f[i]+v,先不管v是多少。

  要證明:dp[k]+(f[t]-f[k]-c)2<=dp[j]+(f[t]-f[j]-c)2

  只要證(f[t]=f[i]+v代入):dp[k]+(f[i]+v-f[k]-c)2<=dp[j]+(f[i]+v-f[j]-c)2

  只要證dp[k]+(f[i]-f[k]-c)2+2v*(f[i]-f[k]-c)+v2 ?<= ?dp[j]+(f[i]-f[j]-c)2+2v*(f[i]-f[j]-c)+v2

  由于假設,所以只要證:?2v*(f[i]-f[k]-c)<=2v*(f[i]-f[j]-c)。

  即證:f[k]>=f[j](顯然)

  證明完畢

?

?

  思路很明確,一直卡在二分上面,噗。

  用一個隊列來維護這些區(qū)間段,由于區(qū)間段必定是連在一起的,所以只需要記錄左端點L以及更新這個區(qū)間的決策k。如果隊列為空,則后面全部由i來更新得到,若非空,那么判斷隊尾的L,是否由i來更新會更優(yōu),若是,則pop掉隊尾,繼續(xù)同樣的動作,直到隊列為空或者i作為決策不如隊尾的L更好,那么i可以更新的就是[L,n]之中的尾部區(qū)間[r,n],而r可以用二分查找的方式。細節(jié)上很容易寫挫,比如i決策可能完全都可以用武之地,不用二分去找了,否則會錯;二分時必定要保證r由i來更新更佳,且有可能會出現等于的情況。復雜度O(nlogn),斜率優(yōu)化等再寫。

?

?

1 //#include <bits/stdc++.h> 2 #include <iostream> 3 #include <cstdio> 4 #include <cstring> 5 #include <cmath> 6 #include <set> 7 #include <deque> 8 #include <map> 9 #include <algorithm> 10 #include <vector> 11 #include <iostream> 12 #define pii pair<int,int> 13 #define back que[rear-1] 14 #define INF 0x7f7f7f7f 15 #define LL long long 16 #define ULL unsigned long long 17 using namespace std; 18 const double PI = acos(-1.0); 19 const int N=50100; 20 21 LL len[N], dp[N], L; 22 int q[N], d[N], n, l, r; //區(qū)間以及決策 23 LL cost(int j,int i) //用j來更新i的費用 24 { 25 return dp[j]+(len[i]-len[j]-L)*(len[i]-len[j]-L); 26 } 27 28 int find(int i,int k,int st) 29 { 30 int ll=st, rr=n; 31 while(ll<rr) 32 { 33 int mid=rr-(rr-ll+1)/2; 34 if( cost(i,mid)<cost(k,mid)) rr=mid; 35 else ll=mid+1; 36 } 37 return rr; 38 } 39 LL cal() 40 { 41 l=r=1; 42 d[1]=0;q[1]=1; //初始時,0可以更新[1,n] 43 for(int i=1; i<=n; i++) 44 { 45 dp[i]=cost(d[l], q[l]++); //q[l]永遠等于i 46 if( l<r && q[l]==q[l+1] ) l++; 47 48 while( l<=r && cost(i,q[r])<cost(d[r],q[r]) ) r--; 49 if(l>r) //只能用i來更新 50 { 51 q[++r]=i+1; 52 d[r]=i; 53 } 54 else if( cost(i,n)<cost(d[r],n)) 55 { 56 int tmp=find(i, d[r], q[r]); 57 q[++r]=tmp; 58 d[r]=i; 59 } 60 } 61 return dp[n]; 62 } 63 64 int main() 65 { 66 //freopen("input.txt","r",stdin); 67 while(~scanf("%d%lld",&n,&L)) 68 { 69 L++;len[0]=0; 70 for(int i=1; i<=n; i++) 71 { 72 scanf("%lld",&len[i]); 73 len[i]+=len[i-1]; 74 } 75 for(int i=1; i<=n; i++) len[i]+=i; 76 printf("%lld\n", cal() ); 77 } 78 return 0; 79 } AC代碼

?

轉載于:https://www.cnblogs.com/xcw0754/p/4866121.html

總結

以上是生活随笔為你收集整理的HYSBZ 1010 玩具装箱toy (决策单调DP)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 操操操网站 | 国产精品久久久久久久久久久久久久久久久 | 成年人在线观看视频网站 | 亚洲20p| 精品国产伦一区二区三区免费 | 秋霞在线一区二区 | 成人av在线看 | 欧美无砖区 | 好男人天堂网 | 日本中文字幕在线观看 | 亚洲精品三级 | 91极品美女| 男生女生操操操 | 日韩免费黄色片 | 精品久久久在线观看 | 花房姑娘免费观看全集 | 国产超碰av| 97成人精品| 国产一级特黄毛片 | 国产午夜在线一区二区三区 | 国产精品视频不卡 | 97在线免费公开视频 | 亚洲精品久久久久久久久 | 四虎国产精品永久在线国在线 | 亚洲AV成人无码久久精品巨臀 | av香蕉网| 国产精品xxx在线观看www | 插插插91 | 欧美高清视频一区二区 | 神马午夜av | 久久影库| 国产在线视频卡一卡二 | 999av| 春色av| 激情宗合| 三年大全国语中文版免费播放 | 久草色在线 | 性爱一级视频 | 99久久婷婷 | 欧美日韩在线免费看 | 日韩精品亚洲精品 | 亚洲综合黄色 | 超碰碰97 | 超碰97人人草 | 亚洲色图综合在线 | 大尺度一区二区 | 亚洲av无码一区二区三区dv | 麻豆国产尤物av尤物在线观看 | 欧美一级一片 | 99国产精品人妻噜啊噜 | 一区二区在线观看免费 | 中文字幕资源网 | 天天射天天爽 | missav | 免费高清av在线看 | 91久久综合精品国产丝袜蜜芽 | 久久精品国产99久久不卡 | 日韩成人免费在线观看 | 人人做人人爱人人爽 | 啪啪在线观看 | 久久这里都是精品 | 国产999精品视频 | 一区二区在线影院 | 日韩成人无码 | 日韩区在线观看 | 久久婷婷国产 | 亚洲黄网在线 | 91极品视频 | 欧美日韩一区二区在线观看视频 | 欧美在线一区二区视频 | 91亚洲国产成人精品一区二区三 | 国产又黄又粗又长 | 国产一区二区三区观看 | 日本少妇喂奶漫画 | 一区二区在线观看免费 | 国产又色又爽 | sm久久捆绑调教精品一区 | 亚洲永久无码精品一区二区 | 成年人视屏 | 亚洲最大成人在线 | 日本理论中文字幕 | 加勒比精品在线 | 裸体男女树林做爰 | 精品香蕉99久久久久网站 | 国产一二视频 | 成人av一区二区在线观看 | 快播在线视频 | 色婷婷香蕉在线一区二区 | 最新欧美大片 | 日韩无码精品一区二区 | 欧洲视频一区二区 | 久久精品国产亚洲av麻豆蜜芽 | 亚洲一本之道 | 免费看a级黄色片 | 久久全国免费视频 | av天天看| 欲涩漫入口免费网站 | 国产成人精品网 | 一二三四区视频 | 玖玖视频|