1. 程式人生 > >牛客練習賽3 E

牛客練習賽3 E

#include<bits/stdc++.h>
using namespace std;
 
const int maxn = 1e5 + 10;
int a[maxn], b[maxn];
int n, k;
vector<int> g[maxn];
 
int lsh(int x) {
  int L = 1, R = n;
  while(L <= R) {
    int mid = (L + R) / 2;
    if(b[mid] > x) R = mid - 1;
    else if(b[mid] < x) L = mid + 1;
    else return mid;
  }
  return 0;
}
 
int main() {
  scanf("%d%d", &n, &k);
  for(int i = 1; i <= n; i ++) {
    scanf("%d", &a[i]);
    b[i] = a[i];
  }
  sort(b + 1, b + 1 + n);
  for(int i = 1; i <= n; i ++) {
    a[i] = lsh(a[i]);
  }
  for(int i = 1; i <= n; i ++) {
    g[a[i]].push_back(i);
  }
  int ans = 1;
  for(int i = 1; i <= n; i ++) {
    if(g[i].size() <= 1) continue;
    for(int j = 1; j < g[i].size(); j ++) {
      int L = 0, R = j, p = j;
      while(L <= R) {
        int mid = (L + R) / 2;
        if((g[i][j] - g[i][mid] + 1) - (j - mid + 1) <= k) {
          p = mid;
          R = mid - 1;
        } else {
          L = mid + 1;
        }
      }
      ans = max(ans, j - p + 1);
    }
  }
  printf("%d\n", ans);
   
   
  return 0;
}

相關推薦

練習賽3 E-絕對半徑2051(尺取/離散化+二分)

題目描述 ????是一名狙擊手,憑藉肉眼視覺可以做到精確命中絕對半徑2051公尺的一切目標。 作為一名優秀的狙擊手,????不僅經常保養槍支,也經常保養彈藥。 ????有?枚子彈,第?枚的型號為??,????打算扔掉其中最多?枚。 大多數優秀的狙擊手都有藝術癖好,???

練習賽3 E

#include<bits/stdc++.h> using namespace std; const int maxn = 1e5 + 10; int a[maxn], b[maxn]; int n, k; vector<int> g[maxn]; int

練習賽7 E 珂朵莉的數列(樹狀數組+爆long long解決方法)

src main stdin scanf return n) can print con https://www.nowcoder.com/acm/contest/38/E 題意: 思路: 樹狀數組維護。從大佬那裏學習了如何處理爆long long的方法

練習賽7 E 珂朵莉的數列

arc scanner print amp tar [] next ++ implement 珂朵莉的數列 思路: 樹狀數組+高精度 離散化不知道哪裏寫錯了,一直wa,最後用二分寫的離散化 哪位路過大神可以幫我看看原來的那個離散化錯在哪裏啊 通過代碼: im

練習賽10 E題 數列查找 (分塊思想 + 莫隊算法)

意義 blog str aps mes blank ref pair rem 題目鏈接 數列查找 考慮分塊然後跑莫隊, 設$c[i]$為$i$在當前維護的區間內出現的次數, $g[i]$為在當前維護的區間內有多少個數出現次數為$i$, $bg[i]$把出現次數分塊

練習賽 29 E 位運算?位運算!(線段樹)

rotate space lan lld 直接 clu 中間 for col 題目鏈接 牛客練習賽29E 對$20$位分別建立線段樹。首先$1$和$2$可以合起來搞(左移右移其實是等效的) 用個lazy標記下。轉移的時候加個中間變量。 $3$和$4$其實就是區間$0

練習賽33 E. tokitsukaze and Similar String (字串雜湊)

題目連結:https://ac.nowcoder.com/acm/contest/308/E 題意:中文題 見連結 題解:雜湊預處理(三雜湊模板) 1 #include <bits/stdc++.h> 2 using namespace std; 3 #define ll lon

練習賽33 E. tokitsukaze and Similar String (字符串哈希)

code har lan stdout kaze get names amp 字符 題目鏈接:https://ac.nowcoder.com/acm/contest/308/E 題意:中文題 見鏈接 題解:哈希預處理(三哈希模板) 1 #include <bits

練習賽33 E tokitsukaze and Similar String

題目連結 預處理所有26種變化的hash表,用hash表來判斷子串是否相等 假設x的第i種變化與y相等,ans=min(i,26-i) 都不相等就為-1 #include<stdio.h> #include<iostream> #include<algo

練習賽 29 E 位運算?位運算!(線段樹)

要求讓你實現支援以上要求的資料結構。 本題的特點主要是這些操作都是區間的位運算。由於這裡最多隻有20位,而且每一次的左移和右移都是強制補齊到20位的左移和右移,所以我們可以考慮線段樹維護每一位的情況。考慮線段樹的每一個節點i,它對應的sum[j]表示對應區間

練習賽30: E. 國政議事(二分匹配)

題目描述 對於任何一個高速發展的發展中國家而言,一個高效的領導小組是不可或缺的。 現在我們知道k國的領導小組有n個人,準備舉行一次會議,他們一共需要處理m個重要事項,第i個重要事項在ai手中,並且該重要事項需要交給bi來具體實施。 人都到齊後,他們會進行一個“交換意

練習賽34 E little w and Digital Root(數位dp)

title: 牛客練習賽34 E little w and Digital Root(數位dp) date: 2018-12-17 22:38:37 tags: 數位dp categories:ACM 題目連結 題目描述 數根(又稱數字根Digital root)是正整數的

練習賽7 E 題 珂朵莉的數列 【樹狀陣列 + 思維】

傳送門 //對於一個數n, 它有n*(n+1)/2個子區間, 問這些子區間的逆序對數之和. //那麼這個區間問題一般都是計算貢獻問題, 所以先分析問題如果有 i < j 且 a[i] > a[j] 那麼區間1<= l <=i, j &

練習賽28 E【斜拋運動的最大水平射程】

連結:https://www.nowcoder.com/acm/contest/200/E 來源:牛客網 題目描述 女裝會成癮 由於某人的精心設計,小可愛掉入了女裝的天坑無法自拔。 於是……她開始瘋狂的成批的買女裝。 而Kirito_Rivaille為了戒掉他的女裝病,準備實

序列子區間問題(西安電子科技大學第16屆程式設計競賽 E Xieldy And His Password,U14739 X ask Y III 子區間異或和、練習賽16 E求值)

序列子區間問題一般都是問你,求序列子區間的和的和...異或和的和..和的異或和...和是3的倍數的個數... 這類問題一般都是用(字首和+)記錄狀態的陣列來實現,將O(n*n)的複雜度降為O(k*n)(k為常數) 這類問題可以從如何優化遍歷以i為結尾的連續子序列的複雜

練習賽14 E-無向圖中的最短距離(bfs+bitset)

連結:https://www.nowcoder.com/acm/contest/82/E來源:牛客網題目描述 有一個n個點的無向圖,有m次查詢,每次查詢給出一些(xi,yi) 令dist(x,

練習賽11 B trie樹+拓撲判環 E 分治求平面最近點對

define ima 字典序 父親 name return 如果 int body 牛客練習賽11 B 假的字符串題意:給定n個字符串,互不相等,你可以任意指定字符之間的大小關系(即重定義字典序),求有多少個串可能成為字典序最小的串,並輸出它們。 tags:好題 對

E 定向 練習賽25

imp sizeof i++ %d time lse printf string inf tarjan 父節點和子節點 1 #include <cstdio> 2 #include <cstdlib> 3 #include <

練習賽35 - B背單詞 - 3維的dp

題目描述 winterzz1準備考4級了,現在winterzz1決定把世界上所有單詞都背一遍,winterzz1發現任意一個單詞最多有A個連續的母音,最多有B個連續的子音。且單詞最長長度為N,winterzz1問你在滿打滿算的情況他需要背多少單詞??? 輸入描述: 首先輸入一個T(T&l