二分(哈士奇的手鍊)

2022-06-09 05:33:09 字數 1235 閱讀 1554

哈士奇得到了一條由不同顏色的珍珠串起來的手鍊,它決定用這條手鍊當作禮物向它的女神表白,女神收到禮物後決定考驗一下哈士奇,如果哈士奇答對了,就接受哈士奇的表白。女神要求哈士奇說出這條手鍊中由連續的不同顏色珍珠所組成的最長珍珠段的長度。

女神怕憨憨的哈士奇聽不懂她的問題,貼心的舉了個栗子:

用數字代表顏色,例如有這樣乙個手串12222345,把這個數字串想象成乙個首尾相連的珍珠串,那麼這條手鍊中由不同顏色珍珠所組成的最長段為34512(因為首尾相連,所以5後面緊跟著是1),所以答案為5。

哈士奇聽懂了,現在它在思考如何解決這個問題?

輸入只有一組資料。

第一行為乙個正整數 n (1 <= n <= 500000),表示手鍊長度。

第二行包含 n 個範圍在 0 到 9 的數字,不同數字代表不同顏色的珍珠。

輸出為乙個整數,表示哈士奇的答案。

input

8

1 2 2 3 2 3 4 5

output
5
#pragma gcc optimize(2)#include

#include

#include

#include

#include

#include

using

namespace

std;

typedef unsigned

long

long

ull;

inline

intread()

while(ch>='

0'&&ch<='9')

return x*f;

}const

int maxn=1e6+10

;const

int inf=0x3f3f3f3f

;const

int mod=1e9+7

;int

n;int

a[maxn];

int b[10

];int judge(int

x)

for(j=i;j)

else

}if(j==i+x)

}return0;

}int

main()

for(int i=n+1;i<=2*n;i++)

int l=1,r=n;

intans;

while(l<=r)

else

}cout

}

二分的模板(花式二分)

對於不下降序列a,n為序列a元素的個數,key為關鍵字 1.求最小的i,使得a i key,若不存在,則返回 1 int binary search 1 inta,intn int key if a r key returnr return 1 2.求最大的i,使得a i key,若不存在,則返回 ...

1128 二分 二分查詢

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述nettle最近在玩 艦 因此nettle收集了很多很多的船 這裡我們假設nettle氪了很多金,開了無數個船位 去除掉重複的船之後,還剩下n 1 n 1,000,000 種不同的船。每一艘船有乙個稀有值,任意兩艘船的稀有...

leetcode 那些不像二分的二分

魯迅先生曾經說過 有的二分問題,看著不像二分,但是是真的二分,一旦二分,是真的666 2021年3月21日leetcode周賽第三題 寫這道題是為了記錄一下這個精妙的二分 貪心解法。class solution else return high 計算長度為len的陣列,並且最大值為high的最小總和...