原创 DSU on tree CodeForces - 741D

dsu on tree  主要還是去學了一下這個東西,大概就是利用的輕重鏈的性質,把暴力的複雜度優化到了(nlogn)。非常神奇的算法。 題目還是略板的。 題目意思就是問每棵子樹上有多少權值異或和爲0或者二進制最多1個1的鏈。 #inc

原创 HDU-6065 RXD, tree and sequence(dp+LCA)

主要利用了LCA 的性質——一個區間的LCA等於區間內相鄰點的深度最低的LCA。 所以這個問題就轉化成選取k個相鄰點的深度 或 單點的深度。 #include <bits/stdc++.h> using namespace std;

原创 RXD and numbers HDU - 6064(歐拉回路路徑數)

BEST定理 答案爲T1(G)∗∏i=1n(di−1)!T1(G)∗∏i=1n(di−1)!  其中T1(G)=T1(G)=(出度矩陣-鄰接矩陣)去掉第一行第一列後行列式的值 這道題固定了起點是1,所以答案要乘上1的出度,可以理解成把一條

原创 2019牛客第一場h xor

應用了線性基的性質。 一個基可以表示向量空間裏任意一個數。 所以任意求一組基,計算每一個基之外的數的貢獻,就是這個數必選,其他數可選可不選 基之內的數,如果這個基不可被替代,那麼貢獻爲0,否則貢獻與基之外的數一樣。 ​ #include

原创 Wavel Sequence HDU - 6078 (dp)

這個題,做的時候想了個cdq的做法,但是o(nlognlogn)的,感覺上就會T死。 正解還是很巧妙的。。。 定義dp[i][j],1<=i<=n,0<=j<=1,表示以a[i]爲結尾,大於或小於的情況。 枚舉第二個數組的元素,對於每個元

原创 牛客5 G Glad You Came

長度爲n的數組,m次操作, 每次操作把一個區間內小於v的數更新成v m很大,但是據說mlogn能卡過去,也只能說一句隨機數據真的蠻快的 正解是rmq的變形? 用倍增的思想把一個區間分成nlogn個區間,這樣每一個區間都能分成2個區間。每次

原创 牛客第一場多校H Longest Path &&斜率dp

題意:給你一顆樹,每條邊有邊權,定義每條路徑長度爲路徑上相鄰邊 權值差的平方和。 樹dp加斜率優化 #include <bits/stdc++.h> using namespace std; #define N 200005 #defi

原创 Coloring Tree

考慮這樣一個推廣問題:有一個無向圖,給每個點染色,有k種顏色,任意兩個距離<=d的點不能相同顏色,問有多少種染色方案 這個問題是不好解決的,但我們可以解決一些特殊的拓撲結構 如果是個鏈,那顯然從左往右計算每個位置可以染多少種顏色然後乘起來

原创 Chessboard HDU - 6532 (最大費用流)

題意:給你一個棋盤,棋盤上有一些棋子,有一些規定,規定超過多少行或者多少列後只能取不超過k的棋子。 題解:棋盤問題是一個很經典的網絡流問題。 建圖還是比較好想的,但是不會跑最大費用流,賽後補了一下。 但是好像這道題有問題,最大費用最大流也

原创 洛谷p1399(基環樹)

題意:給你一個只有一個環的圖,讓你選一個點(可以在邊上),使得到最遠點的最短路最小。 思路: 如果是一顆樹的話,就是求樹的直徑/2。 如果是基環樹的話,這道題顯然不是基環樹的直徑,因爲是到最遠點的最短路的緣故。 那我們考慮最終解到其他所有

原创 Asa's Chess Problem UVALive - 7670

大意: 給你一個N*N的棋盤,每個格子上有白子有黑子,棋子兩兩配對(配對的棋子一定在同一行或者同一列),配對的棋子可以互相交換位置,要求每行每列的黑子個數不超過不限不低於下限。 思路:看到這 #include <bits/stdc++.

原创 Discover Water Tank HDU - 5575

題意:一個底面1*n的容器,兩邊無限高,中間被n-1塊板阻斷,給你m次觀測,每次觀測告訴你第i個區域是否有水,問你這些觀測中最多有幾個是對的。 思路:如果水超過板的高度,那麼板的兩邊的區間就可以視爲一個區間。所以只要枚舉水沒有溢出和水已經

原创 It's a Mod, Mod, Mod, Mod World

等差數列整除整數向下取整求和 找的一個巨巨的板子,,,但是不知道怎麼證的。。。。。 還是存一下板子吧。。。。 #include <bits/stdc++.h> using namespace std; #define ll long

原创 Grouping ZOJ - 3795

題意:縮點找最長鏈 #include <bits/stdc++.h> using namespace std; #define N 100005 int dp[N],vis[N],f[N]; vector<int>path[N],so

原创 Awesome Shawarma Gym - 101991A(點分治)

Fouad has a raw awesome shawarma, and he is in a city which is represented as an undirected tree. He heard that there i