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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

AC日记——[HNOI2008]玩具装箱toy bzoj 1010

發布時間:2025/7/25 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AC日记——[HNOI2008]玩具装箱toy bzoj 1010 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1010

?

思路:

  斜率優化DP;

  跪爛大佬

?

代碼:

#include <bits/stdc++.h> using namespace std; #define maxn 50005 #define ll long long ll que[maxn],sum[maxn],dp[maxn],n,l,ai[maxn],a; inline void in(ll &now) {char Cget=getchar();now=0;while(Cget>'9'||Cget<'0')Cget=getchar();while(Cget>='0'&&Cget<='9'){now=now*10+Cget-'0';Cget=getchar();} } ll G(ll now) {return sum[now]+now; } ll Y(ll x,ll y) {return dp[x]+pow(G(x)+a,2)-dp[y]-pow(G(y)+a,2); } ll X(ll x,ll y) {return 2*(G(x)-G(y)); } int main() {in(n),in(l),a=l+1;ll h=0,tail=0;for(ll i=1;i<=n;i++) in(ai[i]),sum[i]=sum[i-1]+ai[i];for(ll i=1;i<=n;i++){while(h<tail&&Y(que[h+1],que[h])<=G(i)*X(que[h+1],que[h])) ++h;dp[i]=dp[que[h]]+(G(i)-G(que[h])-a)*(G(i)-G(que[h])-a);while(h<tail&&Y(i,que[tail])*X(que[tail],que[tail-1])<=Y(que[tail],que[tail-1])*X(i,que[tail])) --tail;que[++tail]=i;}cout<<dp[n];return 0; }

?

轉載于:https://www.cnblogs.com/IUUUUUUUskyyy/p/7029468.html

總結

以上是生活随笔為你收集整理的AC日记——[HNOI2008]玩具装箱toy bzoj 1010的全部內容,希望文章能夠幫你解決所遇到的問題。

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