原创 POJ 1269

POJ 1269 計算幾何基礎,叉積應用,直線判相交及交點求解。 取兩條直線的方向向量做叉積,結果爲0則平行。平行時,求一直線與另一直線的一端點的叉積,結果爲0則不是同一條線。不平行時, x1=L[0].s.x, y1=L[0]

原创 POJ 1556

POJ 1556 計算幾何+最短路 題目大意是有N堵豎直的牆,每堵牆上有三扇門,分別給出每扇門上端點和下端點的座標。求點(0,5)到(10,5)的最短距離。 枚舉兩個點,判斷這條線段是否與牆相交,相交則這兩個點無法直達,否則可

原创 LA 4043

LA 4043 最佳完美匹配,懶得寫東西。 講下構圖,所有蘋果樹做X集,所有螞蟻做Y集。邊的權值爲(-1)*歐幾里得距離。最佳完美匹配中不會存在相交線段。 顯然若存在線段a1-b1與a2-b2相交,a1-b2,a2-b1權

原创 POJ 2653

POJ 2653 計算幾何基礎,線段相交判斷。 題目大意是按順序給出N條線段,求在最上面的線段。 那麼按輸入順序逆序進行枚舉線段,並枚舉輸入在它之後的線段是否與它相交,若無輸入順序在它之後的線段與其相交則無線段在它之上。 兩

原创 HDU 5303

HDU 5303 題意是在一個圓上,有n顆蘋果樹,相對起點的順時針距離爲xi,每棵樹上有ai個蘋果。現在帶上一個容量爲K的籃子,從起點出發,問將所有蘋果收回來至少要花多少時間? 顯然,從起點出發,不論從從左或是右,在不跨過

原创 插頭dp

最近學習了基於連通性的動態規劃,也就是插頭dp,刷了一些入門題。 插頭dp主要解決的問題是,給定矩陣,矩陣中有些點不能到達,有些點可以到達,問經過所有可達到的點,且每個點只經過一次的迴路有多少種。 學習資料有很多,相關的博客也不少,羅

原创 2017 Multi-University Training Contest - Team 1

1001 題意: 給定m,求最大的k滿足10^k<2^m 分析: 顯然kmax=log10(2^m-1), 但m太大,直接計算2^m-1不現實,log10(2^m)計算很方便, Log10 (2^m)=m*log10(2),我們發

原创 51nod 1624

題意:給定3*n的矩陣,求模P下的路徑權值總和最大值。 每次移動都只能向右或者向下走,那麼一條完整的路徑必然是由 (1,1)->(1,L)->(2,L)->(2,R)->(3,R)->(3,n)。 先預處理出road[i],road

原创 分桶法

分桶法與平方分割 給定一個序列,並詢問很多個區間,要求我們求該區間的最值,一般採用的都是ST算法,這邊提供一個新的方法——分桶法。相比較ST算法,效率可能沒有那麼高,ST算法的查詢效率是O(lg(n)),而分桶法的效率在O(sqrt(n)

原创 2017 ACM西安網絡賽 G題 Xor

題意: 給出一棵樹,每個節點有個val,q個詢問。 詢問格式:u, v, k, 從u到v的路徑, 每個k個點取一個,求所有點的val值異或和。 如果沒有隔k個取1個的限制的話,那麼做法是很顯然的,dfs一遍,求出所有點到根的異或和,

原创 ZOJ - 3949 Edge to the Root

Edge to the Root 題意是給出一個棵樹,每條邊權都爲1,要求在點1和點x之間連一條邊,使得連邊之後,點1到所有點的路徑長度之和最小。 輸出最小長度之和。 顯然對於一棵樹,添一條邊之後,形成了一個環,一個在1-x的路徑上的

原创 Codeforces 785E

#Codeforces 785E(Round404 div2) 題意是初始有一個1,2,3,4....n的序列A,現在有q個操作,每次操作給出兩個數L和R,表示交換A[L]和A[R],每次操作後輸出當前逆序數的數目。   逆序數的定義是對

原创 LA 3887

給出一個無向簡單圖,要求求出最大邊減最小邊的差值最小生成樹。 鑑於n<=100,那麼枚舉最小邊,並用Kruskal算法構造最小瓶頸樹即可。因爲Kruskal算法是在構造生成樹時保證最大邊最小。複雜度O(m*m)。 #include<bi

原创 51nod 1307

題意:給出一棵樹,每條邊上都有一個權值,每個點也有一個權值,當一條邊的子樹所有節點權值和超過這條邊的權值時,這條邊會斷開。邊按序給出,問最多能有幾條邊。 每條邊的可承受重量可以看成其下端點的可承受重量。 數據比較弱,首先可以按題意模擬

原创 LA 4489

LA 4489 題意是女朋友生日到了,你要去給她買禮物(寫題也被虐,氣)。每個禮物有價格,和女友得到禮物的快樂值。其中有一些禮物是必須買的,否則女朋友會不高興。 你手上有兩張代金券,面值分別爲V1,V2,除此,你還有一次免費挑選禮物的機