原创 [dsu] codeforces 375D. Tree and Queries

題意: 給出一棵樹,1是根節點,n個節點,每個節點有一種顏色。 有m次詢問,每次詢問給出v k,求以v節點爲根的子樹中有多少種數量至少爲k的顏色,一種顏色的數量就是該顏色的節點的數量。 題解: 離線,回答以v爲根的詢問時,

原创 [分治fft] hdu5730 2016多校第一場1008 Shell Necklace

題意: 由n 個點組成的串,要裝飾所有點,裝飾連續i 個點的方法有a[i] 種,要求每個點恰裝飾一次,問有多少種裝飾方法。 題解: 容易想到dp,令dp[i] 表示裝飾前i個點的方法,那麼轉移如下: dp[i]=∑l=1i

原创 [線段樹] codeforces 558E. A Simple Task

題意: 給一個長度n的字符串,q次操作,每次操作把[l,r]排序,k=0非遞增,k=1非遞減。 題解: 採用計數排序的複雜度是O(n∗q) ,無法通過,但有所啓示。 可以看出計數就是區間求和,排序就是區間更新,可以用線段樹

原创 [費用流] HDU1853 Cyclic Tour

Cyclic Tour 題意: 給一個帶權有向圖,要求找出若干個環,每個點必須唯一包含在一個環內,要求所有環上邊權值總和最小,求權值總和,無解輸出-1。 題解: 每個點必須包含在一個環內,換句話說就是任意點的出度=入度=1。

原创 [組合數+bell數] codeforces 569D. Symmetric and Transitive

D. Symmetric and Transitive 題意: 一個集合S 有n 個元素,問它上面的二元關係的數量,要求二元關係滿足對稱性和傳遞性,不滿足自反性。 題解: 學過離散應該知道,二元關係就是笛卡爾積S×S 的子

原创 [burnside引理] HDU5868 Different Circle Permutation

Different Circle Permutation 題意: n個球圍成一個圈,每個球是白色或黑色,要求不能有連續的黑球相鄰,並且旋轉同構,求有多少種合法方案。 思路: 設不考慮旋轉同構時,n 個球的方案爲f(n) ,手算下f(2)=

原创 codeforeces722 Intel Code Challenge Elimination Round (Div.1 + Div.2, combined)

終於補完這場了。 C. Destroying Array 題意: 給一個數組a,長度爲n,然後給一個1~n的排列p,依次毀滅api ,問每次毀滅後數組的最大連續子段和(當然是不能包括毀滅的位置)。 思路: 倒過來看就是每次加一個元

原创 [DP] HDU5819 Knights

Knights 題意: t數軸上有n個騎士位於1,2,3,...n ,移動速度相同,初始移動方向已知,當兩個騎士相遇時,各有50%的概率贏,輸了就死了,並且移動到0和n+1的位置時移動方向會翻轉,問最右的騎士存活的概率。 思路: DP[i

原创 Technocup 2017 - Elimination Round 1 (Unofficially Open for Everyone, Rated for Div. 2) 解題報告

A. Transformation: from A to B 題意: 一個數a,兩種操作,一是把a*2,二是把a*10+1,問把a變到b是否有解和最小次數。 思路: 兩種操作都是指數級別的,爆搜即可。 // // main.cpp //

原创 [HDU5790] Prefix 字典樹+主席樹

Prefix 題意: 給出總長105的N個串 ,給出q個詢問 ,查詢編號[l,r] 範圍內的串有多少個不同的前綴,編號從1 開始。 思路: 對於第i 個串,用主席樹記錄0−i 個串有多少不同的前綴,這個用字典樹可以方便的算出,字典樹的任一

原创 [樹鏈剖分] HDU 5893 List wants to travel

List wants to travel 題意: 給一棵樹,每條邊有個顏色,兩種操作: Change a b c,把a到b的簡單路徑的邊顏色變成c Query a b,查詢a到b的簡單路徑有多少段顏色,連續相鄰的同色邊算一段。 思路:

原创 [樹上揹包] POJ2486 Apple Tree

Apple Tree 題意: 一棵樹n(<=100)個節點,每個節點有a[i]個蘋果,從1出發走k(<=200)步,問最多能得到多少個蘋果。 思路: 首先想到每個節點只有3種情況,要麼不經過,要麼經過了最後回來,要麼經過了最後不回來,只用

原创 [上下界網絡流] SGU 194. Reactor Cooling

194. Reactor Cooling 題意: 給一個無源匯上下界網絡求一個可行流。 思路: 基本是模板題了,這個論文說的很清楚。 主要學習這種建圖方法和思路。 #include<bits/stdc++.h> using namesp

原创 [後綴自動機] HDU5558 Alice's Classified Message

Alice’s Classified Message 題意: 給一個串s,給一個加密過程,輸出密文,過程如下: 初始i = 0,重複下面直到串結束。 找一個子串,第一個字符位於[0,i),而且該子串要和以i開頭的相同長度的串相等,多個

原创 [基環] codeforces 711D. Directed Roads

Directed Roads 題意: 給n個點,和P[i],表示從第i個點到P[i]有一條有向邊,每條邊可以至多翻轉方向一次,問有多少種方法翻轉後沒有環。 思路: n個點n條邊,無自環,每點出度爲1,這個模型應該也出過很多次了。 這個圖