2021CSP-J2總結


2021CSP-J2總結

昨天上午參加了CSP-J,雖然是第二次,但感覺三、四都掛了。。。。

T1

題目大意

給定n,l,r,求$[l,r]$中選出一個整數$mod$ $n$所能得的最大余數。

思路

不是很難。。$O(1)$很明顯

T2

題目大意

給定長度為$n$($n\leq8000$)的序列,有一系列修改與查詢操作

修改:修改第$x$個數的值

查詢:查詢對序列進行插入排序后原序列第$x$個數排序后所在位置

設修改$m$此,保證$m\leq5000$

思路

剛開始沒看到修改次數限制,覺着是什么數據結構或者cdq分治能不能做(有病啊,這是J組!!!)

題目中給出了插入排序的代碼,實際上第二層就是將每個元素插入到它應在的位置。而對於有序序列,改變一個數時,其他元素相對順序不變,所以只要$O(n)$將修改的元素插入就行了

不過序列中有重復元素,而通過初賽復習題目中代碼,其保證原數組中靠前的元素,在排序后也靠前

由於我開始時$sort$了一遍,時間復雜度為$O(n(logn+m))$

T3

題目大意

有一系列服務機創建及客戶機加入的請求,問能否成功,其中:

若申請地址不合法,輸出"$ERR$"

若服務機申請地址已存在,或客戶機申請地址不存在,輸出"$FAIL$"

否則,服務機申請輸出"$OK$",客戶機輸出所連服務機編號

思路心路歷程

后兩條$map$就行了,所以開心地打第一條

卡在第三個樣例上,經過仔細地讀題,發現忘了前導$0$

過了樣例后就下一題了,回家后才想起我寫的玩意在多個前導$0$時會掛。。。(悲傷.jpg)

T4

題目大意

給定一個$01$序列,其中一連串相同數字稱為一個“塊”。每次同時取出每個塊的最左元素,而兩個數字相同的塊在中間元素取完后合並為一個塊,為每次取出的為那些元素

心路歷程

刪除操作,鏈表!。。。不知道咋就放棄了

合並,並查集!。。。不知道又咋就放棄了

然后寫了個$O(初始塊數^2)$的方法。。

人眼對了前倆樣例,結果第三個樣例直接$fc$掛了。。調了一會發現我的輸出行末有空格。。。

最后七分鍾想了個$O(塊數log塊數)$的用線段樹的方法,沒打了。。

$Conclusion$

說實話,發揮得不如去年(雖然去年沒啥可發揮的),一等應該有希望。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM