原创 sicily 1686

//一整天被卡在這道題中。。 //經過5次小改函數,3次大改刷了重寫。。 //TLE 4次 WA 七八次 //一開始一位是水題用自己種過的樹水。。4次TLE後 //重新看看那篇大牛寫的文章。。原來處理一段數據需要用標記。。果斷重寫 //之

原创 sicily 1889

//超級簡單的水BFS,開小號刷WA。。最後靜心檢查原來是 n*m棋盤不是n*n。。 //找兩點最短路,相鄰兩點有相同標記的耗時0,否則耗時1 //沒什麼特別的,最小優先隊列直接水 #include <iostream> #include

原创 sicily 1149 等價表達式

//水題,不過又是邪惡的int改long long刷了幾個WA //題目求等價表達式,式子中未知量只有 a 可以用數代替a 水過去 //棧轉序處理比較傳統 #include <iostream> #include <string> #in

原创 sicily 1004

//十分噁心的浮點運算,極度噁心的16個WA。。。 //輸入一大堆線段,輸出可以合併成幾條 //排個序就OK,但是很容易在精度那邊WA /*先保證x1<x2 斜率不存在的時候保證y1<y2 排序思路: 保證能劃一起的線段一定鄰居,不

原创 sicily 1136 山海經

//聽過大牛線段樹講座。。感覺新手賽要多用線段樹 //這題線段樹RMQ。。一開始真以爲是普通RMQ,水了點代碼交上去果斷TLE //下來看discuss找到建樹方法,但是想不出find方法。。放了3天后才重新拿起 //find一個區間的時

原创 sicily 1148 dp

//本來想水水題的,沒想到被它水了很久很久。。 //給獨木橋上石頭的分佈,青蛙每次只能跳[s,t],求過橋踩到最少石頭數 //數據太大壓縮做dp就可以過 //wengsht #include <iostream> #include <cs

原创 sicily 1140 國王的遺產

//小號40個WA..目今還不知道舊代碼WA哪了。。 //有向樹dfs枚舉斷邊(模擬砍不大於m/2節點的樹枝) #include <iostream> #include <cstdio> #include <cstring> using

原创 Dancing Links 精確覆蓋問題的快速dfs

引.精確覆蓋問題: 給定一個矩陣0-1矩陣,如: 1 0 1 0 0 1 0 1 0 判斷或輸出一些行,這些行的在同一列上有且僅有一個1,如上面的第1和第3行就符合條件。 這個問題是NPC問題,必須用搜索。但是解決這麼一個問題有什麼用

原创 POJ 2085 treap O(nlogn) 與 貪心 O(n)算法

/* 問題是找出逆序數爲m的最小n全排列 * 直接暴過去找出第i輪需要第k小數,k = m-(n-1)*(n-2)/2+1 ,當然如果m比較小就k=1了 * 然後用treap找第k小數就可以了。。 * O(nlogn) * 聽說

原创 sicily 1192 二分匹配

//求二分圖最大獨立集,點之間無邊 //先求最大匹配,剩下的點之間不可能有邊,再加上匹配數(每對匹配只取一個人)即可 //如果剩下的點中,男的與匹配點中女的有邊,就取該匹配的男點 //不可能出現不在匹配中的男女兩點同時與同一匹配邊有邊,因

原创 poj 2155 二維樹狀數組

//現在知道的樹狀數組有兩種寫法,一個適用擦邊查點,一種適用擦點查邊 //擦點查邊的寫法比較普通,arr[i] 存的就是i管轄範圍內的sum //擦邊查點反過來寫,此時,插入t到[a,b]相當於插入-t到[0,a-1] 插入t到[0,b]

原创 poj 1442 treap

//順序插入數字,動態查詢第i大的數,每次查詢i遞增 //直接暴treap #include <iostream> #include <ctime> #include <cstdlib> #include <cstring> #inclu

原创 sicily 1404 第一道 狀態DP

#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define check_i(i,

原创 poj 2750 線段樹 Potted Flower

//被我種得很複雜的線段樹。。 //找環最大和區間。。不能包涵整個環(撲街的條件啊) //想法其實很簡單存儲左起最大值,右起最大值 #include <iostream> #include <cstdio> using namespace

原创 POJ 3734 推公式

/* 不做任何限制的組合數是4^n,減去出現奇數個綠色或紅色球的情況。思路是從n個球中跳出k個球(k>=1 && k <=n)去染綠色和紅色,剩下的球的情況自然是2^(n-k), 問題轉化爲求k個球染兩種顏色的組合數,且必有一種球染奇數。