省選模擬104

A. 簽到題

  考慮第一個詢問,那麼要求的就是有多少個元素後面比當前元素大的第一個位置是$x$。

  那麼將每個位置和後面比他大的第一個位置連邊,容易發現一共形成了一棵樹的結構。

  所以問題就是給一個節點和這個節點的所有兒子加權值,鏈上求和。

  那麼額外開一棵線段樹維護加的標記即可。

 

B. 藍超巨星

  一個很自然的想法就是枚舉第一個字符變換到了哪裏,那麼可以確定字符的唯一置換,然後根據每個字符和第一個字符的位置可以列出27個線性同餘方程,直接解就完了。

  然後的問題就是怎麼判斷字符的置換是否是合法的,定義字符串的hash值爲每個位置減去上一個相同字符的位置乘p^k,這樣如果兩個字符串hash值相同就是相等的。每次查詢一個子串的hash值只有每種字符的第一次出現需要變化,暴力對每一種字符修改即可。

 

C. 祕密行動

  看到prod可以簡單想到取對數轉化成求和的形式,然後這個貢獻的形式一看就很網絡流,然後一個這麼簡單的圖我居然建不出來。。。

  顯然每個位置每種質數的貢獻是獨立的,將每個位置拆成10個點,每個點選擇有一個貢獻,不選有一個貢獻,某些點對選擇情況的異或有貢獻。

  從S向每個點連邊,流量是選擇的貢獻,從每個點向T連邊,流量是不選的貢獻,對於一組限制,直接在對應的兩個點之間連一條流量爲相應貢獻的邊即可。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章