原创 寬度優先搜索(BFS):POJ3669--Meteor Shower

本題題意爲:隕石落下會砸壞第一象限方塊,周圍的四個方塊也會損壞。你只能在當前完好的方塊上逃離,問你能不能逃脫,最短時間是多少?顯然這題類似於迷宮問題,求最短路徑,一道基本廣搜題。應該注意,不可隨意的以爲到達每個點的時間爲x+y,因爲像迷宮

原创 枚舉搜索+貪心:POJ2718--Smallest Difference(解一)

本題題意是把所給數分爲兩個非空集合,分別用這兩個集合組成兩個數,求組成數的最小絕對值。顯然這是一條窮竭搜索的題目,不大於10個數暴力搜索似乎可以解決。既然要絕對值最小,那麼兩數的位數的絕對值也一定是最小的。所以自然會想到將數據分爲奇數個和

原创 深度優先搜索(DFS):POJ1979--Red and Black

本題是很簡單的深搜題。從起點出發每個黑色頂點訪問一次即可,訪問過的標爲已訪問(或直接標紅色)。看到有些人使用了記憶化搜索,是小題大做了,因爲本題的頂點訪問一次後就“失效”了,所以沒有記憶的必要。原題鏈接 #include <iostre

原创 區間貪心:POJ2376--Cleaning Shifts

本題可理解爲用N個線段去覆蓋1-T的數軸,求最少使用的線段數。貪心算法每次都取當前的最佳值,適用本題。不少人想當然,認爲每次用最長的線段來填,直到填滿。舉個反例:T爲10,N爲5,(1,2)、(3,8)、(9,10)、(1,6)、(6,1

原创 深度優先搜索(DFS):POJ2718--Smallest Difference(解三)

本題題意是把所給數分爲兩個非空集合,分別用這兩個集合組成兩個數,求組成數的最小絕對值。顯然這是一條窮竭搜索的題目,而深度優先搜索是最常用的方法。在解法二中,我使用了標準庫函數next_permutation(),解法三中我將自己用深搜實現

原创 枚舉庫函數搜索:POJ2718--Smallest Difference(解二)

本題題意是把所給數分爲兩個非空集合,分別用這兩個集合組成兩個數,求組成數的最小絕對值。很快我們便能想到next_permutation()這個C++標準庫函數。next_permutation(data,data+n)的功能把data[0

原创 初識貪心:POJ2393--Yogurt factory

本題乍看內容複雜,其實稍加分析便知可以用貪心的思想求解。酸奶廠一邊生產的價格會變化,一邊隨着時間推移儲存酸奶的費用不斷增加。設第i周的酸奶生產+儲存費用爲p,如果第i周沒有賣出則到第i+1周總費用爲p+s,和第i+1周的生產費用可進行對比

原创 mac terminal 命令

終端命令 一. 啓動,關機,登入,登出相關命令 <login> 登錄 <logout> 登出 <exit> 登出 <shutdown> 停止系統 <halt> 停止系統 <reboot> 重啓動 <poweroff> 切斷電源 <sync

原创 一個IT人成功的背後!

  成功的背後,有着許多不爲人知的故事,而正是這些夾雜着淚水和汗水的過去,才成就了一個個走向成功的普通人。   凌晨兩點半,早已習慣了一個人坐在電腦前的我,望着屏幕,任思緒在暗夜的包容下靜靜流淌,時光彷彿又定格在三年多前的那一刻:“2

原创 HostMyBytes

  推薦配置:HostMyBytes KVM VPS 512MB RAM(SS+BBR加速幾乎不佔用內存,三四個小站沒問題) !!!點擊鏈接,選擇store可看到優惠套餐!!!   Budget VPS Hosting Packages:

原创 pat1014

#include<cstdio> #include<queue> #include<string> using namespace std; const int maxn=20,maxm=1000+5; queue<int> que[ma

原创 pat1016

題目非常繁瑣,不過活用數據結構和注意細節處理,就不難解出。注意:若某用戶沒有任何匹配信息,則不要輸出。這是pat慣例,題意模棱兩可。 For each test case, you must print a phone bill for

原创 pat1010

radix數值比較大。不能暴力,即使在二分搜索的時候也要注意,radix很大,計算可能會出現負數,那麼比大小恰恰得到相反的結果,二分的結果就會Impossible。 #include<cstdio> #include<string> us

原创 pat1007

#include<cstdio> #include<algorithm> using namespace std; const int maxn=10000+10; int first,last,maxx; int main() {

原创 pat1004

#include<cstdio> #include<vector> #include<cstring> #include<algorithm> using namespace std; const int maxn=105; vect