這星期打的兩場比賽還是只能做一做水題,就今天比賽的問題還是沒想清楚就敲**,反而簡單的題目不能快速做出來,還有今天組合數學快結束了,組合數學用的多的就是組合數的各種等價變換、在對組合數求余時的lucas定理、求組合數時的除法求逆元、這兩天做的題目都是有關容斥定理的,其實容斥定理也只是乙個思想,倒是也有一定套路可尋,容斥定理一般可用位運算和dfs來實現,但我在會用位運算了之後就不想再考慮dfs了,但是位運算效率有限比如大多數容斥定理用到的就是用容斥定理求區間[1,r]內與n互質的數的個數,然後將這個問題轉化為求解區間內與n不互素的數的個數,再用區間長度減之。用容斥定理來說就是:先將n分解質因數,找出區間中可以被每個質因子整除的數的個數(即質因子倍數的個數--r/p[i]),減去可以被其任意兩個質因子整除的數的個數,加上可以被其任意三個質因子整除的數的個數......用位運算實現如下
ll solve(ll r) //求在區間[l,r]中與n互素的數的個數
題目:hdu - 4349 - xiao ming's hope - (lucs定理)
除法求逆元:即可以理解為公式b^(p-2)==(1/b) (mod p),應用起來就是(a/b)%mod=(a*pow_mod(b,mod-2)%mod)%mod;
ll c(ll n,ll m)
用到的等價變化有:c(n,k)=c(n,k-1)*(n-k+1)/k,c[i][j]=c[i-1][j]+c[i-1][j-1];
c(m,0)*c(n,0)+c(m,1)*c(n,1)+c(m,2)*c(n,2)+...+c(m,n)*c(n,n)=c(m+n,m)
還有ppt上求路徑的問題也很經典,即從(0,0)點出發沿x軸或y軸的正方向每步走乙個單位,最終走到(m,n)點,有多少
條路徑?為c(m+n,n),那麼從(a,b)到(c,d)的非降路徑數為c(c-a+d-b,c-a),
再則在上例的基礎上若設m(1-(m/n))*c(m+n-1,m)
若設m((n+1-m)/(n+1))*c(m+n,m)
12月3日訓練筆記
資料庫考試告一段落,因為準備考試,上一次周四的訓練筆記也忘記寫了。週六全身心投入到刷題中去了,感覺狀態dp的題目還是非常難得。尤其是將其轉換為二進位制關於其中的一些位運算,處理起來不是那麼容易,現在見到總結一下常見的位運算 1.符號,x y,會將兩個十進位制數在二進位制下進行與運算,然後返回其十進位...
12月7日訓練筆記
今天死扣了乙個題,花了半個中午和一下午才將他a掉了,這使我對我的訓練方法產生了深深地懷疑。簡單總結一下,離開題解能a題嗎?離開題解能a題嗎?是時候要好好思考思考了,一味地耗費時間感覺全身做的無用功,方法不對,離成功也就遠了一半了。所以做題方法要把握好,然後在努力。目前的這個專題即狀態壓縮dp,總體感...
9月10日週日訓練筆記
又是一周過去了,已經漸漸的適應了忙碌的生活了。這個週末舉行了兩場比賽,總體感覺 知識點有遺忘,思考問題不仔細。就那今天比賽的水題來說,我思考了好久好久,一開始將重心放在了有沒有什麼數學規律上面,找啊找,找了好大一會也沒找出規律來。浪費了不少時間,好在最後還是相出了做法,ac了這個題。另外還給我一點就...