暑假嗨四訓練總結

2021-10-07 22:24:53 字數 1228 閱讀 9350

一、題意

a.有三個佇列,要求使a佇列存的數為排列的字首,c佇列存的數為排列的字尾,b佇列存的數為其他。現在你可以從任意佇列中選乙個數放到其他佇列。問你需要最小移動多少次,滿足三個佇列的性質。

b.給n組樣例,每組樣例包含了一組資料,要求找出這組資料之中相同的兩個數字之間最短的距離。

c.有n個學生,有兩個學生a,b經常打架所以他們兩個越遠越好,x為a和b換位置的次數,求兩個人最大距離。

d.有n個怪獸 ,每個怪獸都有能力值a[i]。然後現在你有m個英雄,每個英雄也有能力值p[i],每個英雄還有乙個s[i],表示這個英雄一天最多能消滅多少個怪獸,現在你必須乙個接乙個的消滅怪獸,不能改變順序,然後問你最少多少天,能夠消滅所有的怪獸。

e.給乙個陣列a,要求找到乙個陣列b,使得b中每個數都符合bi=ai⊕x,而且b中所有數的二進位制表示中的1的數量是一樣。

f.給n組樣例,每組樣例是乙個長度為n的排列,然後我們每次可以選擇乙個位置i和i+1的數字進行交換,但是每個位置只能交換一次,交換結束後,求這個排列最小是多少。

二、非水題ac過程

b.利用兩個陣列進行解題,a陣列用來表示出現的數字,b陣列用來表示數字出現的位置,len初始為200005,同時用它表示數字出現兩次的時候間隔的距離,min函式每次取最小值,注意當a陣列只有乙個的情況,因為這道題需要多次迴圈,因此不能使用遍歷兩次的方法,遍歷兩次基本上都會超時。

c.通常解決方法是把a往左移動,把b往右移動,不過要注意的是b或a如果到了一端,就不能移動了,當然移動次數比較多了,距離最大也就是n-1,而最後的結果便是b的位置減去a的位置。

f:建立三個陣列,a陣列用來輸入開始的排列,b陣列用來對a陣列進行編號,c陣列用來判斷數字與數字之間是否交換過,然後就是對a陣列中的資料從左到右遍歷,對每兩個數字之間進行判斷、交換,最後得出最小的排列。

三、補題過程

a.認真重看了一遍題,在部落格上查詢標準**,理解了ac**的書寫含義。

d.課下補題時思路也感覺是貪心沒錯,但這道題因為貪心要考慮耐力和能力兩個方面,所以寫**選擇「英雄"的時候就犯了一些錯誤,有一些考慮不到,最後參考了一下通過的人的**。

e.比賽時沒看懂這道題到底要幹嘛,課下的時候看懂了,但並不知道如何去實現,看大佬的**時有點茫然,感覺一片灰暗。

四、感想

根據今天過了的題來說,對關於和位置有關的或通過位置的順序型別的一般難度的題目有了一點頭緒,但對於一些**看不很懂的題目還是很灰暗,很多時候會出來一些思路,但就完全不知道怎麼實現,幸好一些部落格上有思路的一些解析,不然還是有點有心無力。

暑假嗨五訓練總結

一 題意 a.有 n 個人投票,每人對應乙個m i p i 第 i 個人 m i 指的是,如果有 m i 個人已經把票投給你了,那麼他也會把票免費投給你,否則你就花費p i 讓他把票投給你。為了讓所有的人都把票投給你,問你需要的最少花費是多少。b.給乙個數,如果兩個數字相鄰並且奇偶性不同,那麼這兩個...

暑假嗨十訓練總結

一 題意 a.有n個點m條邊組成的有向圖,要給邊塗色,使得不存在乙個由相同顏色組成的環,求最大顏色數。b.給三個數x,y,z求將z分配給 x和y 並保證x y,共有多少種分法。c.給 n 把刀,怪物頭為 m 個,然後每把刀可以砍掉怪物 xi 個頭,如果砍完之後還有頭則長出 yi 個頭,問最少砍多少次...

暑假訓練總結 SSL暑假訓練總結

第一周過的還算好吧,覺得飯堂伙食也挺好的,同學也挺好。學習的東西感覺比小學難好多,有種覺得以前學的東西太簡單了的感覺,但多虧了小學的時候基礎打得還算紮實,學得還行,但總是感覺自己就是個菜雞,就是乙個蒟蒻,哎,室友真的太強了。第一周總結 第二週自我感覺挺不錯的,總算追上了部分室友,成績也開始 這一切都...