牛客小白月賽15

2022-09-10 18:18:20 字數 1518 閱讀 5155

-------------------這次的題目出的不錯,有9題是我賽後能做出來的。但是資料太智障了,重配好幾次還是有問題。

sol:貪心:如果x[i] + y[i] < m,則第i只斑羚一定到不了對岸,所以要盡量多的使用這種斑羚當跳板;如果x[i] + y[i] >= m,則兩隻這樣的斑羚一定有乙隻可以借助另乙隻到達對岸;

ps:比賽的時候資料出鍋了,重配之後還是有鍋,還好比賽的時候沒花時間在這題上面。

sol:相當暴力。t * n都能過,優化一下就是t * sqrt(n);

sol:覺得還有更優的打表方法,但是沒想到。去**區看了一下效率最高的**果然是打表。值得學習;

ps:我被這題坑到了,原先我一直用c語言風格的輸入輸出。但是scanf不方便輸入string型別。所以就採用了cin,後來得知這題的整型用cin輸入會wa。不知道是什麼資料造成的。而且資料裡還有空行之前還沒說明,而且op還有非1非2的情況。

sol:加減通分,乘除直接算。減法是加法逆運算,除法是乘法逆運算。寫倆自定義函式就完事。

sol:就是乙個01揹包,但是每個物品的最小費用不明確。要解決這個問題,可以用線段樹;

sol:線段樹的做法是從別人那看來的,看完發現其實我可以用並查集來代替線段樹的功能,而且更高效;

sol:用離線分塊,之前沒怎麼看過分塊,算是了解一下吧。**很好理解

ps:這題的資料真垃圾,一開始說是暴力都能ac。然後出題人重配了資料之後號稱卡飛暴力,然後就把正解也卡了。我一樣的**交上去一回兒通過一回兒超時的。而且這題現在的資料不開快讀怕是過不去了吧。

sol:既然沒乙個人做出來那我就跳過了吧,連出題人都懶得敲的**(好奇沒有標程資料是怎麼來的);

sol:我是用分塊,塊內排序二分找相同。這是最好想最好敲的方案了;

ps:這題還考細心,x的範圍到10w。而且l可能比r大,比賽結束都沒發現這個問題。吃個教訓長記性吧。這題比賽的時候資料也出鍋,結果重判後還是沒通過orz

2019/6/21學完主席樹來補題

sol:主席樹,一開始用樸素的主席樹做了一遍,但是感覺有效的只有葉子節點,大量的非葉子節點完全浪費了。然後就把樹給稍作休整進行優化了。

sol:trie+manacher,比賽的時候沒開這題有點可惜,trie是我最早學的資料結構,敲的很熟練但是沒在比賽中碰到過。這次還是比賽結束之後看到題解補的。

ps:資料還是有問題,1m的字串長度是1024 * 1024。但是字串遠不止這個長度。

sol:推出公式後用線段樹維護,推公式需要比較強的數學基礎,但是線段樹還是可以敲的;

牛客小白月賽15

第三題 dbq 牛客的這道題真的絕了,wa的原因我看了一下,完全不影響答案,腦子抽寫了兩句語句 與結果不影響 導致wa,這題的評測令人害怕。includeusing namespace std define maxn 500010 intn,q mapmp int sum 0,temp 0 總字串數...

牛客小白賽15

theme n個數,m次詢問,1 n,m 10 5,a i 10000,x 100000 每次詢問區間 l,r 中數字x出現的次數。solution 首先遍歷一遍陣列,記錄下每個數值在陣列 現的位置下標,存入陣列,用vector.由於是按順序插入,所以每個vevctor中的數都是排序好的。之後查詢時...

牛客小白月賽3

a 我們規定母音字母有a e i o u,並且規定半母音字母y也是母音字母。cwbc在學習英語,xhrlyb為了讓cwbc的記憶更加深刻,於是她讓cwbc把每個字串的所有字母都變成乙個恰好不大於它本身的小寫母音字母。可是cwbc比較貪玩,並且他想讓你幫他完成這個任務。聰明的你在仔細閱讀題目後,一定可...