原创 Codeforces Round #269 (Div. 2) Solution

又趁夜擼了一發DIV2,然後由於困完掛了。 現在最終測試的結果還沒有出來,估計寫完就出來了。 通過了前四道題的Pretest. update:這一次rank220,坑了! A:給你六個長度(分別是四肢,頭,軀幹),讓你判斷這是什麼物種。

原创 BZOJ3196 二逼平衡樹 Solution

題意:寫一個數據結構支持如下操作: (1)區間第k大 (2)區間內求某個數的排名 (3)修改某個位置的數 (4)區間內求某個數的前趨、後繼。 Sol:以下提供兩種做法。 Sol1:線段樹套平衡樹。非常裸的做法,除詢問區間第k大複雜度爲O

原创 BZOJ1041 圓上的整點 Solution

題意:給定r,求x^2+y^2=r^2的圖象上存在多少個整點。 Sol:問題顯然可以轉化爲x^2+y^2=r^2有多少個正整數解。我們考慮如何快速的解出這個方程。 引入本源勾股數組(x,y,z)(x,y,z爲正整數),滿足x^2+y^2

原创 BZOJ3262 陌上花開 Solution

題意:有n朵花,每朵花有3個屬性,若一朵花比另一朵花美麗,當且僅當這朵花的三個屬性均不小於另一朵花。一朵花的美麗度等於這朵花比其他多少朵花要美麗。 求美麗度分別爲0~n-1的花各有多少朵。 Sol:事實上就是三維偏序。一句話:一維排序,

原创 淺談快速傅里葉變換

爲什麼現在不想說很多話? 不妨先留下一個提綱日後填坑吧。 另外CSDN對於公式的支持如此捉急真是無力吐槽。 快速傅里葉變換事實上並不是非常複雜,看了一會算法導論就差不多了。上面的描述十分詳盡。但是如果您覺得這本書太過於沉重,看看我的亂

原创 BZOJ1930 [Shoi2003]pacman 喫豆豆 費用流

題目大意:在二維平面上有若干個點,求出兩條不相交的二維LIS,使得上面包含的點的數目最多。 思路1:暴力建圖 注意到不相交這個條件根本沒用,畫圖可以發現如果相交的話,我們總可以通過交換一些點使得兩個序列不相交。 那麼問題轉化爲求出兩個沒

原创 BZOJ2460 [BeiJing2011]元素 Solution

簡單留一下紀念:同BZOJ3105. 可以參見我的博客這道題的解題報告。 Code: #include <cstdio> #include <cstring> #include <climits> #include <algorithm

原创 BZOJ1024 [SCOI2009]生日快樂

題目大意:自行腦補。 思路:二分答案。 但是如何判斷? 我們定義遞歸函數judge(a,b,k)表示長爲a,寬爲b的蛋糕能否被分爲k塊。 那麼每次我們只需枚舉劃分方法即可,即分爲多少塊和多少塊,橫着切還是豎着。 當k=1時判斷,返回即可

原创 BZOJ2396 神奇的矩陣

題意:有三個N*N的矩陣a,b,c,判斷a*b是否等於c. 思路:暴力判斷O(N*3),我沒試能不能過。 正解是隨機化算法,隨機構造列向量p,然後分別計算a*(b*p)和c*p,比較之。 這個過程僅爲O(N^2). 隨機多組即可。 C

原创 BZOJ1040 [ZJOI2008]騎士

題意:基環樹最大獨立集 思路: 像這種題就是樸素的樹形dp非常容易的,我們用一些技巧轉化爲變體樹。 直接套用仙人掌的動態規劃做法:(基環樹事實上也屬於一種仙人掌) 首先利用tarjan算法,如果遇到自己與兒子之間的邊爲割邊則按照樹邊處理

原创 BZOJ1108 [POI2007]天然氣管道Gaz

題意:有N個黑點和N個白點,每個黑點只能水平向右和豎直向下延伸,與一個白點配對。權值爲兩個點之間的曼哈頓距離。求使得n對點均配對最小的配對總權值。 思路:假設存在一組解,那麼我們交換一對配對,若依舊能夠滿足條件,畫畫圖就知道答案不變。

原创 BZOJ1433 [ZJOI2009]假期的宿舍

題意:自行腦補 思路:網絡流,建模顯然,若滿流則可以 代碼:#include <cstdio> #include <cstring> #include <cctype> #include <iostream> #include <algo

原创 BZOJ3720 Gty的妹子樹Solution

題目大意: 維護一棵初始有n個節點的有根樹(根節點爲1),樹上節點編號爲1-n,每個點有一個權值wi。 支持以下操作:0 u x          詢問以u爲根的子樹中,嚴格大於x的值的個數。(u^=lastans,x^=lastans)

原创 動態樹之詳解

動態樹問題是一種動態維護森林連通性,以及路徑上的信息的問題。目前我們可以利用link-cut-tree進行求解。 最近發現自己以前寫的那個版本實在是太渣了,於是膜拜神犇代碼寫了新的版本。 我們首先簡單解釋一下Link-Cut-Tree的

原创 淺談2-sat的問題的構造與求解

2-sat問題是一種常見的問題。給定若干個01變量,變量之間滿足一些二元約束,求是否有解存在。若存在,給出可行解或按照字典序給出最優解。 下面給出與其對應的圖論模型:給每個變量i設立2個點,我的習慣是記爲T(i),F(i),分別表示其值取