2023年杭電多校第1場第5題 Deque

2021-06-16 23:46:49 字數 864 閱讀 1392

題目傳送門:

思路:這裡我是以第乙個放入的數為切入點,你要想這個數是乙個分水嶺,在它之前數都不比它大,之後的數都不比它小。那麼在原數列中,那些「之前」的數就應該是它後面的乙個非遞增序列,那些「之後」的數則是非遞減序列。這樣,很容易就想到了lis。當然最樸素的演算法是n^2的,想想都知道超時了,所以這裡採用二分的方法做,複雜度只有logn。這裡的每乙個點都要假設一次它是第乙個點,從前往後找是不可能的,這裡應從後往前找,就只要整體做一遍就可以,這裡我選擇的是把陣列從後往前倒序輸入,這樣找的時候就可以根據下標順序找了。當然,在找到的非遞增序列和非遞減序列中可能有重複的數字,對於第乙個放進去的數a,只要兩個序列的數字個數和減去a出現次數較少的序列中它的個數就可以了,這裡查詢這個個數是也要二分,否則會超時。

#include#include#includeusing namespace std;

int a[100005],t,n;

int s1[100005],s2[100004],num1,num2;

int c1,c2,ans,f1,f2,m1,m2;

int low,high,mid;

int main()

num1=num2=1;

s1[1]=a[1];

s2[1]=a[1];

ans=1;

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

else

s1[low]=a[i];

c1=low;

}if(a[i]<=s2[num2])

else

s2[low]=a[i];

c2=low;

}low=1;high=c1;

while(low<=high)

//cout}

cout<

2020杭電多校第5場

1001 tetrahedron 直角三稜錐有乙個性質 底面面積的平方等於三個側面面積的平方和。然後根據體積可以算出來h,1 h2 a2b 2 a2 c2 b 2c2a 2b2c 2 frac frac h21 a 2b2c 2a2b 2 a2 c2 b 2c2 這樣在o n 的時間是沒法算期望的,...

2020 杭電多校第6場

1009 divisibility 題意 十進位制下判斷乙個數n能否被3整除的方法是 判斷n的各位數的和能否被3整除,現給你乙個b和x,判斷再b進製下能否用這種方法判斷所有數能否整除x。打表可以找規律。include using namespace std typedef long long ll ...

杭電多校2020第7場 E Expectation

有一種做法 列舉每個球滾到哪個坑里,算出其概率,再乘上球到這個坑的距離,把結果相加。但是你會發現,這樣子很難處理,而且有許許多多複雜的情況。我們換乙個角度 對於每乙個 i 和 i 1 之間的線段,我們算其被經過的期望次數。手玩一會兒不難發現有如下結論 對於一條線段,如果其左邊為洞,右邊為球,那麼肯定...