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

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

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

      [Codeforces Global Round 17][Codeforces 1610E. AmShZ and G.O.A.T.]

      題目鏈接:1610E - AmShZ and G.O.A.T.

      既然要求的是最大的好序列,就需要考慮排除所有的不安定因素,即先思考什么樣的子序列是非法的。

      \(k=1,2\) 的時候可以發現都是合法情況,那么看一下 \(k=3\) 的情況,可以得出非法的情況只可能是 \(c_1<\frac{c_1+c_2+c_3}{3}<c_2\le c_3\),分析一下可以得出,對應的充要條件實際上是 \(\frac{c_1+c_2+c_3}{3}<c_2\),可以化成 \(c_1+c_3<2c_2\)

      另外可以證明,一個非法序列 \(c\) 里一定存在一個長度為 \(3\) 的非法子序列,證明方式采用反證法。

      \(m=\lceil \frac{k}{2}\rceil\),考慮 \(c_m\) 的大小,既然 \(c\) 是一個非法序列,那么 \(c_m\) 就一定要嚴格大于序列的平均值。然而由于 \(c\) 中不存在一個長度為 \(3\) 的非法子序列,據此得出對任意的 \(i\)\(c_i,c_m,c_{k-i+1}\) 一定是一個合法序列,那么就有 \(c_i+c_{k-i+1}\ge 2c_m\)(這一結論在 \(i=m\)\(k-i+1=m\) 時也顯然成立)。把 \(\sum c_i\) 乘以二后首尾配對就能得到:

      \[2\sum_{i=1}^k c_i=\sum_{i=1}^{k} {c_i+c_{k-i+1}}\ge2k\cdot c_m \]

      把上面的這個式子兩邊同除 \(2k\) 就能得出,\(c_m\le \frac{\sum_{i=1}^k c_i}{k}\) ,與之前的 \(c_m\) 要嚴格大于序列的平均值發生矛盾,于是得出 \(c\) 里一定存在一個長度為 \(3\) 的非法子序列,證畢

      于是一個好的序列就必須保證:序列中不存在三個數 \(a\le b\le c\),使得 \(2b>a+c\)。必要性顯然,充分性在剛剛得到了證明。

      那么我們在構造一個盡可能大的子序列時,就需要時刻保證對任意的 \(a\le b\le c\),有 \(b\le \frac{a+c}{2}\)。我們來考慮一下往答案序列里面一直加數的過程,假設一開始序列里有兩個數 \(x,y\),不妨設 \(x,y\) 就分別是最終答案中的最小值和最大值,那么下一個被加進來的數就必須滿足 \(x\le z\le \frac{x+y}{2}\)。不難通過想象(或在數軸上畫圖)得出,這一操作相當于讓前兩個數之間的間隔減半。于是這個加數的操作不會超過 \(O(\log n)\) 次,當然除了最后可能會把所有與 \(x\) 相同的數字全部加進去。

      回顧這個構造序列的過程,本著貪心的原則可以得出,當確定了序列中的最小值 \(a\) 之后,一定是先把所有數字中的最大值加進去來提高初始兩個數之間的間隔。接下來就是不斷加入最大的滿足 \(x\le z\le \frac{x+y}{2}\) 的數字 \(z\),這樣就能構造出一個以 \(a\) 為最小值的最大序列。這里要注意,由于在序列中,只有最小值是可以重復出現的(若不然,則會有 \(\{x,y,y\},x<y\) 使得序列變壞),所以序列的最小值是需要枚舉的。那么我們枚舉序列中的最小值,然后再模擬生成序列的過程,每次二分找到最大的滿足條件的數,就能得到最終的答案,時間復雜度為 \(O(n\log n\log W)\)

      當然作為一篇嚴謹的題解,我們還需要補充說明一下,按照此法生成的序列一定是一個好序列。實際上只要說明任意一個大小為 \(3\) 的子序列都是合法序列就好了,以下為證明過程:

      對這個生成的序列 \(b\),可以根據生成序列的過程得出,\(b_{i}\le \frac{b_{i+1}+b_1}{2}\),從而有 \(b_{i+1}-b_1\ge 2(b_i-b_1)\)。那么對任意的 \(j>i\),也能得出 \(b_j-b_1\ge 2(b_i-b_1)\),移項得到 \(b_j-b_i\ge b_i-b_1\)

      于是對任意的 \(i<j<k\),必然有 \(b_k-b_j\ge b_j-b_1\ge b_j-b_i\),從而推出 \(2b_j\le b_i+b_k\),得到 \(b_i,b_j,b_k\) 是一個合法序列,證畢

      #include<bits/stdc++.h>
      using namespace std;
      #define N 200010
      int T,n,a[N];
      int main()
      {
      	scanf("%d",&T);
      	while(T--){
      		int ans=0;
      		scanf("%d",&n);
      		for(int i=1;i<=n;i++)scanf("%d",&a[i]);
      		for(int i=1,nxt=1;i<=n;i=nxt){
      			while(nxt<=n && a[nxt]==a[i])nxt++;
      			if(nxt>n){
      				ans=max(ans,nxt-i);
      				break;
      			}
      			int j=n,cnt=1;
      			while(nxt<=j){
      				j=upper_bound(a+nxt,a+j,(a[i]+a[j])/2)-a-1;
      				if(j<nxt)break;
      				cnt++;
      			}
      			ans=max(ans,cnt+nxt-i);
      		}
      		printf("%d\n",n-ans);
      	}
      }
      
      posted @ 2022-07-21 15:16  DeaphetS  閱讀(121)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 五级黄高潮片90分钟视频| 久久精品女人天堂av免费观看| 亚洲va久久久噜噜噜久久狠狠 | 国产精品国产三级国产试看| 国产嫩草精品网亚洲av| 国产亚洲av日韩精品熟女| 精品尤物TV福利院在线网站| 少妇被粗大的猛烈进出| 日本亲近相奷中文字幕| 国产黑色丝袜在线播放| 国产女人看国产在线女人| 久久亚洲精品11p| 国产熟女一区二区三区蜜臀| 国产中文字幕在线精品| 亚洲av一本二本三本| 久久毛片少妇高潮| 亚洲色成人网站www永久四虎| 亚洲精品一区二区在线播| 怡春院欧美一区二区三区免费| 中文字幕亚洲综合久久| 国产日韩一区二区四季| 在线中文一区字幕对白| 日韩精品一区二区三区久| 97人人超碰国产精品最新| 久热这里只国产精品视频| 国产精品久久久久久久久人妻| 人妻夜夜爽天天爽| 中文字幕一区日韩精品| 午夜激情小视频一区二区| 视频一区视频二区制服丝袜| 灌云县| 在线看av一区二区三区| 熟女一区| 中文有码字幕日本第一页| 久久精品人妻无码专区| 亚洲人成电影网站 久久影视| 极品一区二区三区水蜜桃| 四虎成人精品无码永久在线| 人妻无码中文字幕| 99久久精品久久久久久婷婷| 国产日韩精品中文字幕|