長者的妹子(序)

2022-09-03 01:21:08 字數 1402 閱讀 7716

【問題背景】

zhx 給他的妹子們排序。

【問題描述】

zhx有n個妹子,他對第i個妹子的好感度為ai, 且所有ai兩兩不相等。現在n個妹子隨意站成一 排,他要將她們根據好感度從小到大排序。 他使用的是氣泡排序演算法。如果排序過程中 好感度為ai的妹子和好感度為aj的妹子發生了交換, 那麼她們之間會發生一場口角。

現在 zhx 想知道, 給定妹子的初始排列, 在排序完成後, 最多存在多少個妹子, 她們任意兩 人之間沒發生過口角。

正式地, 考慮對陣列ai進行氣泡排序, 如果ai和aj在排序過程中發生交換,那麼在兩個元素之 間連一條邊。你需要求出,排序結束後,最多存在多少個元素,其中任意兩個元素之間不存在連邊。

【輸入格式】

第一行兩個整數 n, 表示妹子數量。

接下來一行 n 個整數ai,表示初始第 i 個妹子的好感度。

【輸出格式】

一行乙個整數, 表示最多滿足要求的妹子的個數。

【樣例輸入】

33 1 2

【樣例輸出】

2【樣例解釋】

。【資料規模與約定】

對於30%的資料, 1 ≤n≤ 16。

對於70%的資料, 1 ≤n≤ 5000。

對於100%的資料, 1 ≤n≤ 100000, 0 ≤ai首先,直接冒泡的複雜度是n^2,然後再瞎搞就是30的暴力啦。其次呢,如果你看出來(其實是瞎猜出來)

if(ai那麼你就get了這個題了,emmmm,其實做題的時候還不知道什麼事lis,但是看資料範圍就瞎搞了乙個nlogn的做法,瑟瑟發抖。然後並沒有a,首先我輸出了妹子,其次我的二分寫掛啦。

對於70分,我猜是n^2的dp,emmmm,貌似線段樹維護優化到nlogn也可以a,qwq待會試一下貼上來。

#include#include

inline

intread()

while(c>='

0'&&c<='9'

)

return k*f;

}int ma[100010

];int len=0

;void ef(int l,int e,int

value)

int m=(l+e)>>1

;

if(ma[m]>=value) ef(l,m,value);

else ef(m+1

,e,value);

}int

main()

else

ef(1

,len,mz);

}printf(

"%d\n

",len);//

輸出len,不是mz

//for(int i=1;i<=len;++i) printf("%d ",ma[len]);

return0;

}

Gty的妹子樹

我曾在弦歌之中聽過你,檀板聲碎,半出折子戲。舞榭歌台被風吹去,歲月深處尚有餘音一縷 gty神 xian 犇 chong 從來不缺妹子 他來到了一棵妹子樹下,發現每個妹子有乙個美麗度 由於gty很哲 學,他只對美麗度大於某個值的妹子感興趣。他想知道某個子樹中美麗度大於k的妹子個數。某個妹子的美麗度可能...

牛半仙的妹子序列

傳送門 to nowcoder 不妨把題目中的 魅力值 叫做 a langle a rangle a 用 d p tt dp dp,轉移條件比較苛刻。如果 f j f j f j 能轉移到 f i f i f i 需要滿足 只關注不超過a ia i ai 的數時,aj aj a j a jaj aj...

牛半仙的妹子序列

牛半仙有 n 個妹子,魅力值分別為 1 n,排成一排。牛半仙會在這些妹子中選若干個,但是他很 貪婪,他只會選完美妹子序列。乙個妹子序列 p ip i pi 指妹子的位置 是完美的,當且僅當其是一 個上公升序列,且不存在乙個 j,使得j pm j p m j pm 且 v j vp mv j v vj...