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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

bzoj 1911: [Apio2010]特别行动队 2011-12-26

發布時間:2023/12/10 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bzoj 1911: [Apio2010]特别行动队 2011-12-26 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1911: [Apio2010]特別行動隊

Time Limit: 4 Sec??Memory Limit: 64 MB
Submit: 892??Solved: 359
[Submit][Status][Discuss]

DescriptionInputOutputSample Input4
-1 10 -20
2 2 3 4 Sample Output9HINT

Source

_________________________________________

很簡單的動規方程: F[i]:=max(F[j]+a*(s[i]-s[j])^2+b*(s[i]-s[j])+c)

用斜率式優化:??

?? 原方程展開:????? F[i]:=max(F[j]+a*s[i]^2-2*a*s[i]*s[j]+a*s[j]^2+b*s[i]-b*s[j]+c)

???設g(i,j)為??F[i]?的一個決策

??????????? 則??g(i,j)-g(i,k)=f[j]+a*s[j]^2-(f[k]+a*s[k]^2)-(b+a*s[i]^2)*(s[j]-s[k])?

?????????? 當 決策j 優于決策 k時? g(i,j)-g(i,k)>0????????

??????????? 設 y[i]=f[i]+a*s[i]^2??, x[i]=s[i]

?????????? 所以可化簡為????? (y[k]-y[j])/(x[i]-x[j])>b+a*s[i]^2???

??????????? 因為 a<0 所以? b+a*s[i]^2 單調遞減。

_________________________________________

?

1 ProgramStone; 2 var i,j,head,tail,a,b,c,n:longint; s,f,cons,sq,que:array[0..1000001]ofint64; 3 function delhead(i,j,k:longint):boolean; 4 begin 5 if cons[i]*(s[j]-s[k])>sq[j]-sq[k] then 6 exit(true) 7 else 8 exit(false); 9 end; 10 functiondeltail(i,j,k:longint):boolean; 11 begin 12 if(sq[i]-sq[j])*(s[j]-s[k])>(sq[j]-sq[k])*(s[i]-s[j]) 13 then exit(true) 14 else exit(false); 15 end; 16 functionmax(a,b:int64):int64; 17 begin 18 ifa>b thenmax:=a elsemax:=b; 19 end; 20 Begin 21 readln(n); 22 readln(a,b,c); 23 fori:=1ton do read(s[i]); 24 fori:=2ton do inc(s[i],s[i-1]); 25 head:=1;tail:=0; 26 fori:=1ton do 27 begin 28 cons[i]:=b+2*a*s[i]; while(tail>head)and(delhead(i,que[head],que[head+1])) do 29 inc(head); 30 j:=que[head]; 31 f[i]:=max(a*sqr(s[i])+b*s[i]+c,f[j]+a*sqr(s[i]-s[j])+b*(s[i]-s[j])+c); 32 sq[i]:=f[i]+a*sqr(s[i]); while(tail>head)and(deltail(i,que[tail],que[tail-1])) dodec(tail); inc(tail); 33 que[tail]:=i; 34 end; 35 writeln(f[n]); 36 end. 37 38

?

轉載于:https://www.cnblogs.com/yesphet/p/5236331.html

總結

以上是生活随笔為你收集整理的bzoj 1911: [Apio2010]特别行动队 2011-12-26的全部內容,希望文章能夠幫你解決所遇到的問題。

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