福州省賽 二分

2021-08-11 04:33:45 字數 925 閱讀 3306

題意:給定n個0到m的數字要求找到乙個最長的序列(它們的值必須的遞增或遞減的, 不能存在環),其中0可以代替1到m中的任意乙個值,問最長的序列的長度是多少?

題解:本來想的是先把零的個數找到,把不是零的數按照從小到大排列,找到合適的位置把零插進入,找到最長的序列,現在發現同乙個數字可能出現多次,排序之後仍然需要處理每個數字出現的次數,因為序列為有序的,所以每個數字只是用一次,又因為下標為1到100000所以可以把下標當做數字來處理,這時把每個數字的出現與否,都記錄在陣列中,而且用下標表示,其中儲存的數字為0或1(0代表沒有出現過該數字,1代表出現過該數字),然後從中找到合適的開始數字和結束數字,長度就為序列的長度。每個數字都可以是開始數字所以遍歷,從0開始到m,如何找到結束為止,這時候用到了

二分來尋找結束數字,其中結束數字和開始數字之間的沒有出現的數字的數量不能超過零的個數。

注意:0其實不可以當開始數字,但是用0好處理。下面用**說明:

**:

#include#include#include#include#include#include#include#include#include#includeusing namespace std;

typedef long long ll;

const int n= 1e5+7;

int visited[n], flag[n];

int main()

for(int i = 1; i <= m; i++)

max = -1000000;

for(int i = 0; i <= m; i++)

max = max(max, r-i);

}printf("%d\n", max);

}return 0;

}

二分 藍橋杯省賽 分巧克力

題目 兒童節那天有 k 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友們。小明一共有 n 塊巧克力,其中第 i 塊是 hi wi 的方格組成的長方形。為了公平起見,小明需要從這 n 塊巧克力中切出 k 塊巧克力分給小朋友們。切出的巧克力需要滿足 形狀是正方形,邊長是整數 大小相同 例如一塊 ...

二分模擬賽流程

確認資料是否完整 nan,型別異常 將string型別,換成category 使用onehot或者labelencoder 資料標準化 mirmaxscaler或者standardscaler 儲存資料 因為部分預處理過程會比較耗時,所以需要保留中間結果 一般來說,越新的模型效果越好 lightgb...

2020ICPC江西省賽 C 列舉,二分

題目大意 給n nn個線段.假設選擇k kk個線段,它們的交集長度為s ss.要求最大化min k,s min k,s min k,s n,l i,ri 3e5 n l i,r i leq 3e5 n,li ri 3e5 題目思路 首先想的是三分選擇的k kk個線段。求最大的交集。因為s ss隨著k...