BUPT訓練隨筆 round 4)

2022-05-16 03:31:07 字數 2234 閱讀 7628

bupt t4

目前已掌握:abcdefghk

a:要你求

思路:隊友做的0.0,大概的想法是有的,但是賽中沒繼續往下想隊友就切了。首先求和符號裡面的兩個東西本質上是乙個東西這樣變成g[i]=i-1+2/i*sum(g[j-1]),然後要想著脫掉求和符號,就對式子兩邊先同乘i再進行差分ig[i]-(i-1)g[i-1]=2(i-1)+2*g[i-1],即g[n]/(n+1)-g[n-1]/(n)=(2n-2)/n(n+1),發現只需要對右邊這個東西求個字首和就好了。右邊=(1/n-1/(n+1))*(2n-2)=2*sum(1/i)-(2n-2)/(n+1),只要求sum(1/i)即可。發現資料範圍實在比較大(n=1e9),發現可以使用分塊打表處理,就可以通過本題了。m的限制其實並沒有什麼用,只要稍微修改一下式子即可

b:網格圖中給定多條延x/y軸方向出射的射線,求整個圖被分割成幾個聯通塊。保證不會有兩條射線重合。

思路:考慮y軸方向對x軸方向的射線的貢獻。那麼發現是二維數點問題。可以用掃瞄線+線段樹水過去。

c:給定n<=40個數,要你計算所有可能的子集合中數字中「4」的個數

思路:n<=40,首先排除dp和三方做法。想到狀壓或者爆搜。發現可以考慮折半搜尋,然後我們發現數字「4」這個東西很不好處理,所以必然要對每個數字分開單獨討論。發現可以預處理a,b兩個集合內子集合的狀態(不超過2^20)然後一一配對考慮對答案的貢獻。又發現對於每乙個a集合中的數,b集合中有貢獻的一定是一段區間,而且區間左右端點隨著a中數的增大單調遞減,可以用雙指標掃瞄。但是發現複雜度為2^nlog2^n*10,不能通過。考慮優化排序的複雜度,發現基數排序可以完美解決這個問題,所以就能通過了。

d:要你找出排列1~n的乙個子串行,滿足ai^2=ai-1*ai+1,求方案數

思路:賽中一直想著如何對單獨質因子討論然後合併質因子的答案,結果發現並不是很有用。賽後通過題解才明白可以列舉公比。首先長度為1,2的可以單獨計算,長度》4的可以發現末項必須整除q^(len-1),所以可以暴力列舉,難度在於長度=3的。由於數學太菜這裡只能放出來題解中的式子(其實不會用latex)

然後發現後者是個數論分塊,前者可以杜教篩。(我這就去補數學嗚嗚嗚)(未實現,待填坑)

e:給你乙個字串,a要讓字串字典序盡量小,b要讓字串字典序盡量大。每次可以把乙個字元i->(i+1)%26,a先操作,求最終字串的樣子。

思路:隊友做的0.0,賽後感覺思路還是很有趣的。如果當前有個z,那麼a會讓它變成a,b會讓它變成b,遊戲結束。如果當前有個y,那這時候a不能動,b也不能動。如果是其他字母a會直接選擇結束遊戲。

f:有4種硬幣 10 20 50 100,求組合出所給出的多種數字最少使用的硬幣數量

思路:隊友做的0.0,首先發現答案很大的時候肯定100用的越多越好,我們又發現10最多用1個,不然多餘的10可以用20代替,20最多用4個,50最多用1個。這樣我們可以列舉10 20 50的用量,然後暴力揹包計算即可。

g:給定一棵樹,統計(l(a,b),l(c,d))的有序二元組的個數,l(a,b)表示a到b路徑上的點數。需要保證a->b,c->d互不相交。

思路:賽中做的。我們發現如果(x,y)有的話,(x,y-1),(x-1,y)必然也會有。那麼我們只需要找到(x,maxxi)統計答案即可,問題轉化成取兩條盡量長的鏈。很自然就會想到樹的直徑,顯然這會產生(lmax,?)和(?,lmax),?可以通過樹型dp求出最大值,但是這只是一種拆分,有可能兩條鏈都含有樹直徑的一部分,所以我們要列舉斷點,分別對兩邊的兩個聯通塊求直徑。也可以通過樹形dp實現。

h:給定n個ai,n個bi,讓ai,bi一一配對之後,計算sum aixorbi 而且要保證答案中不存在j,k(aixorbj>aixorbi&&akxorbi>aixorbi)

思路:一看到這個就想到trie樹貪心了。只是賽中考慮方案是否合法想了很久。(題目看錯了,&&看成了||)發現如果直接trie樹每次找最大xor值是可以滿足這個方案的。所以寫完就a了。

題意過於難以描述,貼圖為敬。

思路:完全沒有思路.jpg 隊友做的 隊友tql 賽後仔細理解了一下題解。直接看構造其實會比較懵逼,因為並沒有道理。但是我覺得ag佬的賽後評講比較有道理。首先其實都會往分治的方向去靠,考慮合併區間的答案,然後根據計數過程中遇到的不能直接利用數學公式的東西設計乙個新的dp方程來計算。本篇題解中h->g->f的推導思路應該來說是比賽中能想到這種題目做法的唯一方法。

暑假訓練隨筆

七月的流火好像還在灼燒著上海,八月的微風已稍有顯露 好吧。不扯了。現在多校訓練已經進行到一小半了,但是自己賽場上做不出來好氣,比賽完補題不會更生氣,就這樣迴圈往復過了半個暑假了。哎,每個學期開頭都是雄心壯志要好好做人,結果到了後面總是難有乙個好的結果。想想acm對我也差不多有了兩年了,大一的什麼都不...

R學習隨筆記錄

對向量x進行分組處理 分組規則由引數index指定,index是個factor型別,長度與向量x一致,指定x成員的類別 fun為處理函式 lm formula,data,subset,weights,na.action,method qr model true,x false,y false,qr ...

R語言 訓練隨機森林模型

隨機森林演算法涉及對樣本單元和變數進行抽樣,從而生成大量決策樹。對於每個樣本單元,所有決策樹依次對其進行分類,所有決策樹 類別中的眾數類別即為隨機森林所 的這一樣本單元的類別。假設訓練集中共有n個樣本單元,m個變數,則隨機森林演算法如下 1 從訓練集中隨機有放回地抽取n個樣本單元,生成大量決策樹 2...