原创 UVA 12576 - Simply Loopy

      簡述:給定N,求 x1 + x2 + x3 + x4 + x5 = N的所有非負整數解的平方和。       思路:先求 x1 的所有解的平方和。當 x1 = k,x2 + x3 + x4 + x5 = N - k的非負整數

原创 狀態壓縮dp_POJ1185炮兵陣地

    位壓縮dp,單行有效狀態最多隻有60種。     0.壓縮:用j的二進制表示單行狀態(0<=j<=2^m-1)。j的二進制表示中,0的數位表示該位置不放炮兵,1的數位表示該位置放置了一個炮兵。     1.狀態表示:dp[i]

原创 差分約束_POJ 1752 Advertisement

    好久沒做差分約束系統了,有點陌生。     簡述:給定一個數K和若干個區間Li , Ri(Li可能大於Ri,交換下即可)。|Li|,|Ri|<=10000。要在區間 [ Li , Ri ]上選出 K個點塗上顏色。求數軸上最少的被

原创 dp_PKU Online Judge 1055:Tree

記:f[n]爲上式產生的節點數爲n的樹的深度期望;     g[n]爲上式產生的節點數爲n的不同形態的樹的個數. 那麼: f[n] = ∑n所有形態(∑ndep[v]所有節點深度)/(n*g[n]);則f[n+1] = ∑n所有形態(

原创 CF #325 div1 C + D + hdu 5458

hdu 5458 給定一個連通圖,動態刪邊,並詢問任意兩點u,v之間的橋的數量(i.e刪掉這條邊後,u,v不連通)。保證任意時刻圖是聯通的。 把原圖叫G0,第i個操作結束後的圖叫Gi,所有詢問結束後的圖叫Gq。 把刪邊改爲反向加邊,然後詢

原创 CF238_DIV1_C

題意是給一個無重邊無自環的連通無向圖,每次取出兩條有公共點的邊,求一種取邊方案。無解時輸出no solution。 很容易想,無解等價於邊數爲奇數。有解的時候靠構造。構造是一個猜想+調整的過程。 可以肯定的是,要對邊遍歷一遍。但是如果先匹

原创 codeforces_Round#243(Div 1 )_E dp

看着比較嚇人的dp。大意是:對於區間集合S = { [L1,R1],[L2,R2],[L3,R3]...[Lk,Rk] }, (1<=Li<=Ri<=n),定義f(S)爲:可以從S中選出的互不相交區間的數量,的最大值。給定n和p,問滿足

原创 組合數取模

赤裸裸的組合數取模沒什麼意思,但也是必須掌握的一門知識。一個計數的問題辛辛苦苦搞到最後發現被取模坑成狗也是很有可能的。今天主要總結一下各類取模問題。限長整(long)範圍內。 所謂組合數取模,即求Cmn % p 1

原创 HDU_2013 ACM-ICPC南京賽區全國邀請賽——題目重現

南京賽區題目重現       1001.令Ex表示從開始擲骰子到結束得到的期望值,假設塗色的篩子是1,2,3...m,那麼   有 Ex = 1/n*(a[1]+Ex) + 1/n*(a[2] + Ex) +...1/n*(a[m]+

原创 CF238_DIV1_D

題意:每次求和當前點連線斜率最大的點,然後求最小公共祖先。 對於當前點i,記和i點連線斜率最大的點爲r[i],則r[i]一定是i+1或者i+1的祖先。於是預處理出r[]數組然後建樹求LCA #include <iostream> #in

原创 數位dp_HDU_3943_K-th Nya Number

    本題不是求不大於 n 的Nya數的個數,而是求給定區間內第 K 大的Nya數。有兩種做法:一種是二分+模板,還有一種一直接構造。下面的代碼是直接構造。     關於 f :起初定義爲最高位不大於 l 位(個位是 0 位)的且含

原创 數位dp_HDU_4507_吉哥系列故事——恨7不成妻

    依然滿足區間減法,和一般的數位do沒什麼不同,只是要求平方和罷了。     由於 ∑(Y + xi)^2 = ∑(Y^2 + 2 * Y * xi + xi^2) = n * Y^2 + 2 * Y * ∑xi + ∑ xi^2

原创 什麼什麼的

    天馬行空有時候更有效。     爲何這麼說呢?因爲很多時候我們是思維跟着算法和數據結構走。想着自己學過什麼,然後怎麼把問題轉化到相關問題上。這固然是一種正確的思維方式,把未知變已知。但鑑於我們這弱菜對於算法結構之類所知實在有限,

原创 dp_Zju_3688_The Review Plan II_不願若菜

F[n]:n個限位排列的方案數; g[n]:n個限位排列中有一項映射到自己,剩下所有項依然遵循限制所獲得的方案數。//不難推得,k映射到k和k映射到k+1所得到的g[n]是相等的。則:F[n] = F[n-1]*(n-3)+[2*(n-3

原创 polya計數回顧

burnside引理 設G={g1,g2...gk},k=|G|, 是[1,n]上的置換羣,令c(gi) 表示置換gi 下不動點的個數,那麼G將[1,n]劃分爲等價類>的個數是: l=1|G|∑j=1|G|c(gi) 即是說,等價