原创 CF600E(dsu on tree)

題意: 給你一棵n個點的有根樹,以1爲根,每個點有一個顏色。對於一顆以v爲根的子樹,其出現次數最多的顏色,爲dominating頂點v這個子樹的顏色,可能有多個這樣的顏色。求以n個頂點分別爲根的子樹中,dominating 的顏色和。 思

原创 曼哈頓距離和切比雪夫距離轉換

設平面空間內存在兩點,它們的座標爲(x1,y1) (x2,y2) 曼哈頓距離 dis=|x1−x2|+|y1−y2|,即兩點橫縱座標差之和。 切比雪夫距離 dis=max(|x1−x2|,|y1−y2|),即兩點橫縱座標差的最大值

原创 2019牛客國慶day4 (2017湘潭 H) 樹的直徑

傳送門 題意: #include <bits/stdc++.h> using namespace std; typedef pair<int,int> piir; typedef long long ll; const int m

原创 2019CCPC-Harbin E(拓撲排序)

 Note:T很大,初始化就容易超時。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,ll> piir; cons

原创 2019 Shanghai Online Substring

傳送門 題意 給定一個主串S,m個模式串T,問主串中有多少個字串與模式串T比配 這裏的匹配指首尾字符相同,中間部分可以亂序(可以理解爲相同字母個數相同)。 思路 整體思路就是,將T個模式串按照長度排序,相同長度的模式串一起處理。

原创 2018牛客國慶集訓派對Day6 I 清明夢超能力者黃YY(樹鏈剖分)

傳送門 題意:中文 思路:既然求倒數第k次染爲什麼顏色,那就倒着染色,染到第k次就標記下。 所以我們可以用線段樹來維護每個點被更新的次數,維護一條鏈上的節點被更新過的次數的最大次數。當一個區間的最大被更新次數超過k時,我們再暴力往下去找具

原创 2018 Hunan province E

動態開點 #include <bits/stdc++.h> using namespace std; typedef pair<int,int> piir; typedef long long ll; const int ma

原创 牛客假日團隊賽19 D-Chocolate Milk(拓撲排序+樹)

傳送門 思路: 給每個入度爲零的點一些流量,其流量等於該點的出度值。然後拓撲排序,如果某個點的流量等於全部流量,即爲答案點(除起點)。 因爲題目給的是一顆樹,所以不用考慮流量分流後在聚集到一點上。也就是說,除入度爲零的點以外,出度大於1的

原创 Codeforces 1095F(Kruskal+Greed)

https://codeforces.com/contest/1095/problem/F 題意 給定n個點,每個點都有權值wt[i],點u和點v建一條邊的代價是wt[u]+wt[v]。有m條特殊邊其權重直接爲w,可選可不選。求聯通n個點

原创 洛谷P2580 於是他錯誤的點名開始了(Trie樹板子)

字典樹空間一般開n*maxLen(n爲字符串數量,maxLen爲字符串最大長度,最大情況n個串都不相同) #include<bits/stdc++.h> using namespace std; const int maxnode =

原创 UVA - 10305 Ordering Tasks (拓撲排序)

水題 #include<bits/stdc++.h> using namespace std; typedef pair<int,int> piir; typedef long long ll; const int maxn = 1e2

原创 UVALive - 4255(拓撲排序+構造)

傳送門 思路:連續和轉化爲前綴和之差。可以將問題轉化爲已知序列 a1,a2,...,an 的大小關係,求出任意一組滿足條件的序列。 拓撲排序即可。 我是以sum大指向sum小的方向建邊。假設入度爲零的點即最大值點的值爲0,那麼後面的點比它

原创 Codeforces 1257F MakeThemSimilar(Meet-in-the-middle+Trie(hash|map))

老套路了,可我DFS掛了。   #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 1e3+5; const int

原创 UVA11624 Fire! (BFS)

思路:兩遍BFS即可,先跑Fire,再跑J。貌似寫過 stp數組沒有考慮初始INF! #include<bits/stdc++.h> using namespace std; typedef pair<int,int> piir; ty

原创 2018 ICPC shenyang online J KaChang(分塊+dfs序+BIT)

題意: 給你一顆根節點爲1(深度爲0)的樹,初始每個節點的point爲0。給定兩種操作 1 l x 將所有深度爲l的節點point+x。 2 x   輸出以x爲根的子樹的point和。 思路: 1操作很難搞啊!分塊 按每一層的節點個數分類