原创 博客搬家聲明

從2018年10月24日開始,本博客將遷移到新地址: https://www.cnblogs.com/birchtree/

原创 BZOJ4990 (LCS轉LIS)

題面 https://www.lydsy.com/JudgeOnline/problem.php?id=4990 分析 首先可以看出一個簡單的DP dp[i][j]表示序列a前i個與序列b前j個連線數量 dp[i][j]=max(dp

原创 Codeforces 1047C (線性篩+因數分解)

題面 傳送門 分析 1.暴力做法 首先先把每個數除以gcd(a1,a2…,an)gcd(a_1,a_2 \dots,a_n )gcd(a1​,a2​…,an​) 可以O(namax)O(n\sqrt {a_{max}})O(namax

原创 Codeforces 1058C(思維+最大公因數)

題面 傳送門 分析 引理1:三角形的面積×2\times 2×2一定是整數 由座標系中的三角形面積公式 S=12(x1y2+x2y3+x3y1−x1y3−x2y1−x3y2)S=\frac{1}{2}(x_1y_2+x_2y_3+x_

原创 Codeforces 1042C (貪心+模擬)

題面 傳送門 分析 思路簡單,但代碼較複雜的貪心 分類討論: 有0 負數有奇數個:將絕對值最小(實際最大)的負數和0全部乘到一起,最後刪掉0 負數有偶數個:將0全部乘到一起,最後刪掉0 沒有0 負數有奇數個:將絕對值最小(實

原创 Codeforces 979D (STL set)(不用Trie簡單AC)

題面: 傳送門 題目大意: 給定一個空集合,有兩種操作: 一種是往集合中插入一個元素x,一種是給三個數x,k,s,問集合中是否存在v,使得gcd(x,v)%k==0,且x+v<=s若存在多個滿足條件,則輸出使得v⊕x最大的v。 分析

原创 Codeforces 916E(思維+dfs序+線段樹+LCA)

題面 傳送門 題目大意:給定初始根節點爲1的樹,有3種操作 1.把根節點更換爲r 2.將包含u,v的節點的最小子樹(即lca(u,v)的子樹)所有節點的值+x 3.查詢v及其子樹的值之和 分析 看到批量修改子樹,我們想到將樹上操作

原创 BZOJ 1875(DP+矩陣快速冪)

題面 傳送門 分析 容易想到根據點來dp,設dp[i][j]表示到i點路徑長度爲j的方案數 狀態轉移方程爲dp[i][k]=∑(i,j)∈Edp[j][k−1]dp[i][k]=∑(i,j)∈Edp[j][k−1] 但這樣得出的結果是

原创 HDU 6070題解(二分+線段樹)

題面 傳送門 此題的題意不是很清晰,要注意的一點是在區間[L,R]中,默認題目編號最後一次出現的時候是AC的 比如1 2 1 2 3 ,在區間[1,4]中,第3次提交時AC第1題,第4次提交時AC第2題,故比例爲2/4=0.5 所以

原创 Codeforces 609E (Kruskal求最小生成樹+樹上倍增求LCA)

題面 傳送門 題目大意: 給定一個無向連通帶權圖G,對於每條邊(u,v,w)(u,v,w) ,求包含這條邊的生成樹大小的最小值 分析 包含這條邊的生成樹的大小如何表示呢? 先求出整張圖的最小生成樹大小tlen,對於每一條邊(u,v,

原创 Codeforces 990C (模擬+組合數學)

題面: 傳送門 分析: 此題O(n2l)O(n2l) 模擬肯定是會超時的(l爲所有字符串總長) 我們想到對字符串進行一定的預處理,可以快速計算匹配 我們設每一個(的值爲1,)的值爲-1,規定 若只有)括號多了x個,則l[i]=r[i

原创 Codeforces 191C (LCA+樹上差分算法)

題面 傳送門 題目大意: 給出一棵樹,再給出k條樹上的簡單路徑,求每條邊被不同的路徑覆蓋了多少次 分析 解決這個問題的經典做法是樹上差分算法 它的思想是把”區間”修改轉化爲左右端點的修改 在樹上,每個節點初始權值爲0,對於每條路徑

原创 Codeforces 396C (DFS序+線段樹)

題面 傳送門 題目大意: 給定一棵樹,每個點都有權值,邊的長度均爲1,有兩種操作 操作1:將節點u的值增加x,並且對於u的子樹中的任意一個點v,將它的值增加x-dist(u,v)*k, dist(u,v)表示u,v之間的距離 操作

原创 Codeforces 515C 題解(貪心+數論)(思維題)

題面 傳送門:http://codeforces.com/problemset/problem/515/C Drazil is playing a math game with Varda. Let’s define f(x)f(x) f

原创 BZOJ 1878(離散化+線段樹)

題面 傳送門 分析 首先我們觀察到區間範圍較大,而區間個數較少,考慮離散化,將所有詢問按照右端點進行排序 離散化之後研究區間顏色個數變化的規律 當我們處理到第a[i]個段時,設a[i]上一次出現的地方爲last[a[i]],則last