試題解析2 19

2022-09-22 05:18:08 字數 1473 閱讀 7123

試題解析

$t1$

簡化題意

乙個序列是優美的當且僅當可以通過操作(將相鄰兩個數移動到序列任意位置)使序列不降

考慮怎麼使這個序列不降,考慮移動會造成的影響,逆序對$+/-2$,或者不變

那麼如果有偶數個,那麼一定優美,否則一定不優美

如果是偶數個,肯定能構造出一種方案使得逆序對減少到$0$

奇數的話就肯定不可能了

如果重複出現的數字,可以規定大小關係,那麼可以改變奇偶性,必然是優美的

那麼不考慮相同的情況,那麼對於乙個排列,答案就是偶-奇,這個東西就很行列式

行列式就是所有排列,偶-奇,我們最後求得也是兩個不同的差,那麼求一遍行列式

發現是$o(n^3)$

不是很優,而且絕對過不了,那麼觀察這個矩陣發現是海森堡矩陣

那麼這個考慮行列式的本質,那麼就是第一行兩個選乙個,第二行兩個選乙個...

那麼考慮$dp$轉移,就能得出根據奇偶性求出兩個的權值和

設定$dp[i][j][k]$表示第$i$行,可以選$j$,奇偶性是$k$的價值和

$dp[1][1][0]=a_2$

$dp[1][2][0]=a_1$

那麼就轉移

$dp[i+1][i+1][k]+=dp[i][j][k\ xor\ ((i-j)\&1)]\times dat[i][j]$

就是說需要上一步什麼狀態來轉移

$dp[i+1][j][k]+=dp[i][j][k]\times dat[i][i+1]$

那麼一開始記錄所有情況$sum$

最後列舉一下最後一行選什麼,順便記錄一下奇偶性就好了

最後得到最後行列式是奇數的總貢獻$rs[1]$

那麼偶數就是$sum-rs[1]$,直接輸出就好了

$t2$

$w(n)=\sum_\phi(p_1^...p_^})\times p_i \times \sigma(p_^}...)$

這個式子遞推

$w(n\times p^\alpha)=w(n)\times\phi(p^\alpha)+\sigma(n)\times p$

就$min\_25$維護兩個就好了

$t3$

先說乙個沒關的式子(只是好玩)

$gcd(f_n,f_m)=f_$

式子的遞推關係可以表示為$f_n=9f_+12f_$

給定$n,p,a,b,c$,求$gcd(af_n+bf_,cf_n+df_)$

打表可得,設$g_n=gcd(f_n,f_)$

$g_0=g_1=1,g_n=3g_$

更相減損可以把$b,d$其中乙個變成$0$

$gcd(a'f_n+b'f_,c'f_n)$

$g=gcd(b'f_,f_)=g_n\times gcd(b',\frac)$

$g\times gcd(\frac}},c')=g\times \gcd(\frac+b'\frac} \mod (\fracc')}},c)$

對取模意義下的$gcd$還是有點疑問

面試題解析

1.繼承執行順序 當兩個類之間有繼承關係時,第一次構造子類的例項時,是按照如下順序進行的 1.子類的靜態成員初始化語句 2.子類的靜態建構函式 3.子類的非靜態成員初始化語句 4.父類的靜態成員初始化語句 5.父類的靜態建構函式 6.父類的非靜態成員初始化語句 7.父類的建構函式 8.子類的建構函式...

K進製試題解析

很明顯這是在將 10 進製數轉為 k 進製數。從 0 開始,一直列舉到 n 不斷的向最後一位 1 直到末位為 k 則設定本位為 0 上位進 1 當然,其它各位都要進行檢查逐個上位 判斷題1 若 k 1 則輸出 ans 時,len n 作為第乙個問題,難度肯定不能太高,一般採用特殊值法代入,嘗試找出答...

面試題解析記載

工具類原始碼 hashcode 在建立類的時候要覆蓋equal 和 hash 方法 arraylist 基礎陣列來實現的,遍歷查詢快,但是刪除需要移動陣列資料,處理會慢。linkedlist 實現原理通過鍊錶實現,插入快,查詢和刪除慢。hashmap 非執行緒安全的,通過鍊錶實現的,查詢速度回快很多...