因為$φ$是積性函式,所以$φ(n)=φ (p_)*φ (p_)…*φ (p_)$
對於乙個數字$p^$,$φ(p^)=\left\ 1& \\ 2*k& \end\right.$(因為$φ(p^)=(p-1)p^$),所以說乙個偶數每求一次$φ$就會減少乙個$2$,如果是奇數就先多求一次$φ$,變成偶數,然後再不斷消去$2$,現在我們要求的是每個數字的含有$2$的個數記作$cnt[i]$,如果$i$是偶數,那麼$cnt[i]=cnt[i-1]$,否則$cnt[i]=\sum _^ cnt[p_]*q_$,所以對於我們給出的數字$x$,如果是偶數直接輸出$cnt[x]$,否則就先通過求一次$φ$,變成偶數再求答案...
第一問:
首先我們考慮每個數字經過$a[x]$次交換之後所處的位置是$i$的概率$f[i]$,這個概率和數字具體是什麼在什麼位置是沒有關係的,首先考慮一次,如果$i=x$,那麼$f[i]=0$,否則$f[i]=\frac $,然後考慮交換了$x$的之後假設$f[$到自己$]=p_$,$f[$到其他位置$]=q_$,交換了$y$次之後$f[$到自己$]=p_$,$f[$到其他位置$]=q_$,那麼$x+y$次之後$f[到自己]=p_p_+q_q_(n-1)$,$f[$到其他位置$]=1-(p_p_+q_q_(n-1))$...所以我們就可以愉快的倍增求出每個位置的期望值...
然後我們列舉每乙個位置,計算這個的期望出現次數...就是$\frac }$...然後直接計算就好了...
第二問:
我們可以得到乙個公式表示$ans$,$ans=\sum _ a_p_$,$p_$代表$a_$的期望合併次數,因為我們知道$p$和具體位置是沒有關係的,所以每乙個$p$都是相等的,我們記$f[i]$代表把$i$個數字合成$1$個數字的每個數字期望合併次數,轉移就是$f[i]=\frac (f[i-1]+1)+(1-\frac )f[i-1])$,前面那一項代表我們要從中選出兩項合成乙個選中$i$的概率,後面就是沒有選中$i$的概率,化簡之後得到$f[i]=f[i-1]+\frac $,初值$f[1]=0$,直接計算就好了...
2023年4月22日繼承
1 構造方法 構造方法的名稱和型別相同,沒有返回值型別。構造方法的主要作用就是在建立物件時執行一些初始化操作,如給成員屬性賦初始值。2 構造方法的過載 如下例中的三個構造方法,方法名相同,引數列表不同,這稱為構造方法的過載。public class penguin 構造方法的過載 public pe...
2023年2月25日手記
由於這幾個星期太忙所以一直沒時間更新自己的微博,為自己沒有做到堅持一天一更而感到羞愧留,好吧 先說下昨天剛了解到的知識點吧1.內聯元素2.css命名的權重問題。好了我先來聊一聊內聯元素的問題。1.據我了解,元素分為塊級元素和內聯元素 1.內聯元素中的內容都是在同一行內的,不分行 2.裡面的內容不能是...
2023年2月9日 實習日記
今天在將在ubuntu上配置的環境在rhel上重新進行配置,並找出其中存在的問題。說實話這也是我第一次接觸rhel。首先做乙個啟動盤 工具ultraiso iso兩個 get from intel rhel 7.3 20161019.0 server x86 64 boot.iso rhel 7.3...