8 25模擬賽解題報告

2022-07-22 20:36:20 字數 1020 閱讀 6265

又爆零了,真開心 (⺻▽⺻)

又是一道考場想出正解打炸的題。。 (t_t)

這道題其實很簡單,用字典樹略做處理就好了,幾乎可以做模板題了。因為在trie樹上字首相同的字串一開始經過的一些字元肯定是相同的,所以我們在新增或者刪除操作經過一些節點時,將這個點所對應的集合的\(sum\)值加一就好了,然後\(ans\)要加上兩個集合在這個點所對應的\(sum\)更小的那乙個就可以了。解題關鍵:想到字元字首與trie樹的關係

芝士點:trie樹

#include#define re register

#define min(x,y) ((x)<(y)?(x):(y))

using namespace std;

const int n=500005,w=2000005;

int rt,cnt=1,n,now=1,pl[n],pr[n],ans;

int mp[w][26],num[w][2],mi[w][26];

char ch[w],opt[1];

bool sort[n];

inline void add(int l,int val)

}int main()

else scanf("%d",&x),add(x,-1);

printf("%d\n",ans);

} return 0;

}

這題考場上真的毫無頭緒 (訂正的時候也是,就只會打乙個\(o(n^3)\)的高斯消元。。下午訂正乙個半小時,想了乙個錯誤演算法,真好,直接咕掉。。

錯就錯吧,錯的也講一下,設\(l_i\)與\(r_i\)分別為第\(i\)個人從左樓道和右樓道下去的最小時間。如果第\(i\)個人在左邊一棟樓,則\(r_i=inf\)。

對於左棟樓,設\(t_i\ge l_i\)且不與他人衝突,為第\(i\)個人下樓的時間。右邊也一樣處理。然後對於中間樓道,可以二分答案,先找左邊樓道不大於二分值的空缺加進去,如果左邊滿了就加右邊,至於有沒有空缺,用並查集維護即可。解題關鍵:想到簡化題意,想到衝突的解決辦法

芝士點:並查集,二分答案

20161026模擬賽解題報告

20161026 模擬賽解題報告 by shenben t1 按照題目說的模擬即可 但這題有乙個神坑 當25 個字母都已經一一對應完畢後,剩下的兩個字母預設對應。所有的逆序對之間都會連邊,求最大獨立點集。表面上是個圖論題,其實是個 liso nlogn 求最長上公升子串行的長度 即可ac t3 第一...

模擬賽 BYVoid魔獸世界模擬賽 解題報告

題目名稱 點選進入相關題解 血色先鋒軍 靈魂分流藥劑 地鐵重組 埃雷薩拉斯尋寶 源檔名 c cpp pas scarlet soultap subway eldrethalas 輸入檔名 scarlet.in soultap.in subway.in eldrethalas.in 輸出檔名 scar...

2018 10 24模擬賽1解題報告

預計得分 100 100 100 300 實際得分 100 20 100 220 開場看t1,發現不會做。比較穩一點的做法要寫ac自動機,然是感覺noip又不會考於是寫了三模數hash。然後看t2 t3,發現t3就是個裸的樹形dp,但是可能要寫好長時間,t2完全沒思路。寫t3花的時間比想象的少很多。...