原创 2019牛客多校賽 第九場 I KM and M(貢獻 + 組合計數)

    大致題意:告訴你一個n和m,讓你求。 涉及到位運算的東西,很容易想到計算貢獻,這裏也是一樣。因爲最後按位與的是一個常數,所以只需要看這個常數對應爲1的位置,在M、2M、3M...NM這N個數字中,有多少個仍然是1。用個數乘以對

原创 2019HDU多校賽 第十場 HDU 6694 Play Games with Rounddog(後綴自動機 + 線性基)

    大致題意:給你一個字符串S,然後q個詢問,每次給出S的一個子串T。對於每個詢問的子串T,Calabash可以在S中選擇任意個以T作爲後綴的子串,然後生成子串對應數目個石子堆,每堆的石子數量等於w[對應子串在S中出現的次數]。

原创 2019牛客多校賽 第八場 H How Many Schemes(AC自動機 + 矩陣 + 向量 + 樹鏈剖分 + 線段樹)

    大致題意:給你一棵樹,每條邊上有一個字符串,然後有一些模式串。現在給你一個詢問<u,v>,問你u到v的路徑上,每個條邊任意選擇一個字符,最後按照順序組成一個字符串,最後的字符串包括至少一個模式串的方案有多少種。 看起來很難的

原创 2019HDU多校賽 第七場 HDU 6652 Getting Your Money Back(區間dp + 單調優化)

    大致題意:告訴你你的存款餘額在一個區間內,然後每次你可以猜一個數字,如果餘額大於等於你猜的數字,那麼你可以取走這些錢並且代價爲a,否則爲代不能取走且價爲b。你可以多次重複這個動作,直到你能夠確定你初始時的總共有多少錢。現在問你

原创 2019牛客多校賽 第七場 H Pair(數位dp)

    大致題意:告訴你範圍A和B,讓你求在兩個範圍內,有多少對數字可以使得二者按位與大於C或者異或小於C。 一個比較常規的數位dp,然而比賽的時候由於自己複雜度計算錯誤,還寫了好久的優化,最後發現不優化也能過。 我們令dp[len]

原创 2019HDU多校賽 第五場 A HDU 6624 fraction(輾轉相除法)

    大致題意:給你一個分數在p下的逆元表示形式,現在讓你反推這個分數的a/b的形式,求最小的b且0<a<b。 首先,我們推一下式子:                                                

原创 2019牛客多校賽 第六場 C Palindrome Mouse (迴文樹/迴文自動機)

  大致題意:給你一個字符串,問這個字符串的子串中,有多少個本質不同的迴文串恰好是另外一個迴文串的子串,求這樣的迴文串的對數。 可以說,這是一個迴文樹/迴文自動機的裸題吧。顯然,在迴文樹裏面,一個節點的所有後代都是迴文串而且包含當前迴

原创 2019牛客多校賽 第五場 C generator 2(矩陣乘法 + 分塊 + bsgs)

    大致題意:給你一個很長的數列,然後這個數列遞推公式是Xn = a * Xn-1 + b。問你在模p下,這個數列中,第一次出現v的位置是多少,如果不出現那麼輸出-1。 這個東西,你先嚐試着用矩陣快速冪去做,然後你構造出矩陣,假

原创 2019牛客多校賽 第一場 H題 XOR (線性基 + 組合計數)

    大致題意:給你n個數字,然後讓你求所有滿足異或和爲0的子集的大小之和。 首先這個子集大小之和,顯然可以轉換爲計算每個數字的出現次數之和。考慮到異或和爲0的子集,相當於可以用集合中的一部分數字去表示另外一部分數字,所以很容易想到

原创 2019牛客多校賽 第三場 D Big Interger(數論 + 組合計數)

    大致題意:一個數列爲1,11,111,1111,......令A(n)表示這個序列的第n小的數字。告訴你p,n和m,讓你求有多少對(i,j)可以使得,其中1<=i<=n,1<=j<=m,p爲質數。 根據這個數列的形式,數列的第

原创 2019HDU多校賽第二場 H HDU 6598 Harmonious Army(最小割 + 構圖)

    大致題意:你要把n個東西劃分爲A和C兩個部分,然後有m對關係。對於第i個關係,表示兩個人有關聯,如果兩個人同時分到A裏面,那麼權值增加a;如果同時分到C那麼權值增加c;如果一個在C一個在A,那麼權值增加a/4+c/3。 這道題,

原创 2019牛客多校賽 第一場 I題 Points Division (DP + 線段樹)

    大致題意:給你n個點,第i個點在的位置爲(xi,yi),有兩個屬性值(ai,bi)。現在讓你把這n個點劃分爲A和B兩個部分,使得最後不存在i∈A和j∈B,使得xi>=xj且yi<=yj。然後對於所有的劃分方法,找到並輸出  

原创 CodeForces 1197E Culture Code(最短路/dp)

    大致題意:給你n個俄羅斯套娃,告訴你每個套娃內外的半徑。問你這裏面有多少個集合,可以使得外層不能再套別的套娃而且裏面剩餘的空間最小。 這題的話想到思路還是不難的,無非是套娃的嵌套關係。如果我們找到所有的嵌套關係,我們可以考慮建

原创 2019HDU多校賽 第一場 K HDU 6588 Function(莫比烏斯反演)

    大致題意:計算和式                                                                顯然是一個道反演的題目,話不多說直接開始推導吧。首先把式子拆成兩個求和部分:

原创 2019HDU多校賽 第一場 D HDU 6579 Operation(線性基 + 貪心)

    大致題意:給你一個長度爲n的序列。有兩個操作,0表示詢問在一個區間中取任意數字使得異或和最大,1表示在這個序列的最後加上一個數字x。強制在線。 最顯然的暴力方法就是對整個區間用數據結構維護區間的線性基,對於每個區間進行線性基的合