原创 題目1 : 最短路徑·三:SPFA算法

題目1 : 最短路徑·三:SPFA算法 時間限制:10000ms 單點時限:1000ms 內存限制:256MB 描述 萬聖節的晚上,小Hi和小Ho在喫過晚飯之後,來到了一個巨大的鬼屋! 鬼屋中一共有N個地點,分別編號爲

原创 HDOJ 5057 Argestes and Sequence

Argestes and Sequence Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis

原创 hdu 1392 Surround the Trees( 凸包問題)

原題 Surround the Trees Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi

原创 HDOJ 5021 Revenge of kNN II

5021 Revenge of kNN II Time Limit: 8000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi

原创 hiho一下 第二十二週 (線段樹上存在衝突的區間修改操作)

題目1 : 更爲複雜的買賣房屋姿勢 時間限制:10000ms 單點時限:1000ms 內存限制:256MB 描述 小Hi和小Ho都是遊戲迷,“模擬都市”是他們非常喜歡的一個遊戲,在這個遊戲裏面他們可以化身上帝模式,買賣房

原创 凸包-Graham-Scan算法

(1)問題: 給定二維平面點集,求最小的包含所有點的凸多邊形。 (2)Gramham-Scan算法: Gramham-Scan是一種靈活的凸包算法,其總的時間複雜度僅爲O(n*log(n))。 步驟: Step1: 選定x座標最小(相同情

原创 (BestCoder Round #14) 1002 Harry And Dig Machine(狀態壓縮+DP;剪枝+搜索;全排列)

Harry And Dig Machine Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi

原创 hiho一下 第十七週 最近公共祖先

題目地址 題目1 : 最近公共祖先·三 時間限制:10000ms 單點時限:1000ms 內存限制:256MB 描述 上上回說到,小Hi和小Ho使用了Tarjan算法來優化了他們的“最近公共祖先”網站,但是很快這樣一個

原创 全排列生成

1. 使用STL中的next_permutation()函數 來源:點擊打開鏈接 在C++ Reference中next_permutation的函數聲明:#include <algorithm> bool next_permutatio

原创 旋轉卡殼算法(以poj 2187爲例)

1.問題: 尋找凸多邊形的直徑。 2.與旋轉卡殼有關的概念 (1)支撐線 如果一條直線L通過凸多邊P的一個頂點,且多邊型在這條直線的一側,則稱L是P的支撐線。 (2)對踵點 如果過凸包上的兩個點可以畫一對平行直線,使凸包上的所有點都夾在這

原创 STL 集合(set)

其他的不說,主要提供兩份代碼,包含了常用到的集合操作: #include <iostream> #include <cstdio> #include <cmath> #include <set> #include <algorithm>

原创 (hiho一下 第十九周)線段樹之查詢空間最小值

題目1 : RMQ問題再臨-線段樹 時間限制:10000ms 單點時限:1000ms 內存限制:256MB 描述 上回說到:小Hi給小Ho出了這樣一道問題:假設整個貨架上從左到右擺放了N種商品,並且依次標號爲1到N,每

原创 程序猿裝 B 指南

聽聞今天已有 OSCer 要開始上班啦~ 上班就要有上班的樣子,要整個高大上的形象,不然怎麼對得起程序猿這個稱號! 程序猿裝 B 指南,請童鞋們認真學習~ 一.準備工作 “工慾善其事必先利其器。” 1.電腦不一定

原创 樹狀數組

樹狀數組(Binary Indexed Tree(BIT), Fenwick Tree)是一個查詢和修改複雜度都爲log(n)的數據結構。主要用於查詢任意兩位之間的所有元素之和,但是每次只能修改一個元素的值;經過簡單修改可以在log(n)

原创 樹上的動態規劃

題目: 點擊打開鏈接 樹上的動態規劃: f(t, m)表示,在以t爲根的一棵樹中,選出包含根節點t的m個連通的結點,能夠獲得的最高的評分,然後我們的答案就是f(1, M)! 一般的思路會是這樣子的,首先我要包含根節點,然後與根節點連通的