<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      題解:P5504 [JSOI2011] 檸檬

      題目:

      思路:

      下面給個經(jīng)典的 DP 式子不多說了:
      \(f_i\)\([1,i]\) 取完的最大價值。
      \(qz(x,y)\)\([1,y]\)\(s_i=x\) 的數(shù)量。

      \[f_i=f_j+s_iqz^2(s_i,i)+s_iqz^2(s_{j+1},j)-2s_iqz(s_i,i)qz(s_{j+1},j),s_{j+1}=s_i \]

      移項套個斜率優(yōu)化就完了。

      細(xì)節(jié):

      單調(diào)棧太陰了!下面有個 hack:

      11
      2 10 2 2 10 2 2 10 2 2 2
      ans:128
      

      眾所周知 \(x,k\) 都單調(diào)的題我們可以用單調(diào)隊列維護(hù)。
      但是這題是上凸包且 \(k\) 遞增,手畫一下,我們會發(fā)現(xiàn)我們實際上決策點是從右端點開始縮。總的看下來是個單調(diào)棧。

      代碼:

      #include<bits/stdc++.h>
      #define int long long
      using namespace std;
      const int QAQ=1e5+7,ovo=1e4+7;
      int n,s[QAQ];
      vector<int> qz[ovo];
      int qzh(int s,int i) {return upper_bound(qz[s].begin(),qz[s].end(),i)-qz[s].begin();}
      struct dian {int x,y;} ;
      vector<dian> zhan[ovo];
      const double inf=1e18;
      double xie(dian a,dian b)
      {
      	if(a.x==b.x) return (b.y>=a.y)?inf:-inf;
      	return (1.0*b.y-1.0*a.y)/(1.0*b.x-1.0*a.x);
      }
      int l[ovo],r[QAQ],f[QAQ],ans;
      signed main()
      {
      	cin>>n;
      	for(int i=1;i<=n;i++) cin>>s[i],qz[s[i]].push_back(i);
      	for(int i=1;i<=10000;i++) zhan[i].push_back({0,0});
      	for(int i=1;i<=n;i++)
      	{ 
      		int ccx=qzh(s[i],i);
      		int k=2*s[i]*ccx;
      		while(l[s[i]]<r[s[i]]&&xie(zhan[s[i]][r[s[i]]-1],zhan[s[i]][r[s[i]]])<=k)
      			r[s[i]]--;
      		f[i]=s[i]*ccx*ccx+zhan[s[i]][r[s[i]]].y-k*zhan[s[i]][r[s[i]]].x;
      		int swl=qzh(s[i+1],i);
      		dian nw={swl,f[i]+s[i+1]*swl*swl};
      		while(l[s[i+1]]<r[s[i+1]]&&
      			xie(zhan[s[i+1]][r[s[i+1]]-1],zhan[s[i+1]][r[s[i+1]]])<=
      								xie(zhan[s[i+1]][r[s[i+1]]-1],nw))
      			r[s[i+1]]--;
      		++r[s[i+1]];
      		if(zhan[s[i+1]].size()<=r[s[i+1]]) zhan[s[i+1]].push_back(nw);
      		else zhan[s[i+1]][r[s[i+1]]]=nw;
      		ans=max(ans,f[i]);
      	}
      	cout<<ans;
      	return 0;
      }
      
      posted @ 2025-10-04 15:22  _a1a2a3a4a5  閱讀(13)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产精品自拍中文字幕| 久久精品国产亚洲av麻豆小说| A级毛片100部免费看| 国内极度色诱视频网站| AV最新高清无码专区| 亚洲日韩一区二区| 蜜臀视频在线观看一区二区| 国产91特黄特色A级毛片| 久久精品夜夜夜夜夜久久| 色综合视频一区二区三区| 亚洲夂夂婷婷色拍ww47| 国产精品亚洲精品日韩已满十八小| 国产成人拍国产亚洲精品| 国产国拍精品av在线观看| 亚洲精品一二三四区| 蜜臀视频在线观看一区二区| 熟女少妇精品一区二区| 午夜精品久久久久久久爽| 91久久亚洲综合精品成人| 激情伊人五月天久久综合| 在线综合亚洲欧洲综合网站| 麻豆亚州无矿码专区视频| 肉大榛一进一出免费视频| 国产无遮挡裸体免费久久| 国内精品自线在拍| 国产免费爽爽视频| 人人爽人人澡人人人妻| 国产美女MM131爽爽爽| 中文字幕乱码在线播放| 亚洲精品欧美综合二区| 国产精品高清一区二区不卡 | 香蕉EEWW99国产精选免费| 精品人妻伦一二二区久久| 97免费在线观看视频| 国产精品午夜福利资源| 久久精品国产88精品久久| 国产女人在线视频| 国产一区二区视频在线看| 狠狠综合久久综合88亚洲| 德钦县| 午夜丰满少妇性开放视频|