2014年4月17日 星期四

[ProjectEuler] Problem 313


關於遊戲類型的題目 UVa Online Judge 出了很多題,

通常會把遊戲每個狀態當成一個 state,遊戲進行過程視為狀態轉移,

那我們可以把 state 當成 graph 的 vertex (node),把狀態轉移當成 directed edge。

有了以上的抽象化,我們可以在這張圖上面玩 BFS 或者是 DFS。



Problem #321 也是追尋類似的思路。



我們先抓題目的感覺,接下來的計算就比較容易上手。

以上提示至此,以下是純計算。


2014年4月15日 星期二

2014年4月14日 星期一

南湖群峰四日行 ((D1))


時間:2014年4月11-14日 (五、六、日、一)

人員:八員 ((輝哥、奧黛麗、FB、Tzu Ting、鴨子、阿國、Joseph Chang 、Menggen))。領隊輝哥。

天氣:整天天氣晴朗,最後一晚霧雨。

預計行程:
  • D1 思源登山口 -> 6.7k登山口 -> 松風林 -> 多加屯山水利三角點 -> 木杆鞍部 -> 新雲稜山莊C1
  • D2 C1 -> 審馬陣山登山口 -> 審馬陣山(來回) -> 審馬陣山屋 -> 南湖北山登山口 -> 南湖北山(來回) -> 五岩峰 -> 南湖大山北峰 -> 南湖山莊C2
  • D3 C2 -> 主峰鞍部 -> 主峰南峰三叉路 -> 南湖主峰 -> 主峰南峰三叉路 -> 主峰鞍部 -> 東峰鞍部 -> 南湖大山東峰 -> 上圈谷 -> 南湖山莊 -> 南湖大山北峰 -> 五岩峰 -> 南湖北山登山口 -> 審馬陣山登山口 -> 新雲稜山莊C3
  • D4 C3 -> 木杆鞍部 -> 多加屯山水利三角點 -> 松風林 -> 6.7k登山口 -> 勝光

今年三月走了一趟郡大西巒,總算撿回些些大山的感動與威嚇。這次南湖群峰完全是個意料之外原本以為很熱門抽不到山屋會倒團,結果天氣極佳山屋也沒住滿著實令人意外。爬山之前依舊心繫太陽花學運,總共去了八次住了兩晚,一晚睡露宿袋一晚睡帳篷,前天趁學運結束前贊助四千以綿薄之力對抗龐大國家機器有種淒淒涼涼死後不得其所的難過。

至於工作更是數不清的爛帳。

總之今天依舊循著熟悉的雪山隧道過宜蘭到南山村睡一晚準備出發至思源登山口。這個登山口看了好多次這次總算可以端端正正的登堂入室。傳統上爬南湖大山有兩個登山口,一個是思源登山口另一個是勝光。勝光優點路程短所費時間也短,缺點就是體力消耗大。思源距離足足多勝光一倍時間自然也會多一倍,此外,思源雖然是林道但年久失修某些地方要高繞也不見得比勝光不累。

大抵是如此。

一路蜿蜿蜒蜒該走的該累的也應該走到 6.7K 登山口。開始一路之字陡上。可以預期走到上稜處松風林,爬山很好玩的地方是可以看地圖觀察現地,用腳去感受每一寸土地、石頭、樹根,用心去控制呼吸拒絕使用嘴巴讓自己走的很舒服。或許是季節因素,一路上小蒼蠅超級他媽的多到無情無禮無以復加。

登山口的大樹令我坐立難安是因為小蒼蠅太多了。

松風林

這裡非常有特色,但上來這邊記得抓方向往右才是正路,往左會把自己帶下山不要走錯方向了。其實我好像有點狀況可能是昨天睡覺有點感冒總之不是喜歡的狀態,雖然前嚮假裝壓速度但林杯已經快走不動了。

多加屯山。

幹。

今。年。中。級。山。開。張。惹。

超。爽。D。E。R。

爬中級山比較沒有高山症。

過了多加屯山總算是拼掉一個小魔王,接下來是木杆鞍部就和藹可親了,只需留意別往中央尖山的路走就對了。因為速度實在是不行了,趕緊把幫鴨子多揹的睡袋跟衣服退出去,再背下去就要往生了。公裝套鍋跟高麗菜有夠重的。


走著走著就到雲稜山莊了。原本在我們前面的三位大哥剛好是志工,他們要在這邊整理環境把關三天。希望大家不要製造多餘的垃圾在這邊,山真的很漂亮不是讓我們人類破壞的。


晚上吃的很不錯峰賓很會用。這跟教授所謂的享受豐豐富富的心靈饗宴截然兩個路子,個人給予尊重。其實爬山吃東西學問很多,像我這種吃粗飽的什麼都很好吃,只要吃得下都可以吃,最怕是高山反應沒胃口吃不下。這天過後似乎感受到些許的高山反應,這天雲稜山莊竟然有點興奮睡不著覺。慘。了。啦。

感冒好像也有一點。



奧黛麗還是跟之前一樣很吵。

鴨子會抓奇怪的點一直笑。

瓷瓶算是正常的女生,行為端正不隨便誒誒誒屁啦你給我過來。

阿國、Joseph、FB 年紀相仿聊得很自然。輝哥還是很喜歡拍照但症頭沒有奧黛麗嚴重。


2014年4月8日 星期二

[FWD] Markov chain

http://www.dartmouth.edu/~chance/teaching_aids/books_articles/probability_book/Chapter11.pdf

這個至少可以解答許多 ProjectEuler 問題,

只要碰到 independent trials processes 都有機會用到 Markov chain

2014年4月7日 星期一

走過的山林

2014年
2014-05-02 ~ 04 北大武山

2014-04-11 ~ 14 南湖群峰:多加屯山、審馬陣山 (#30)、南湖北山 (#31)、五岩峰、南湖大山北峰、南湖大山 (#32)、南湖東峰 (#33)

2014-03-22 ~ 23 郡大山、望鄉山、郡大北峰、西巒大山
2014-03-15 ~ 16 四稜溫泉、紅河谷、嘎拉賀溫泉
2014-03-07 ~ 09 蓮花池、文山溫泉、錐麓古道

2014-02-28 ~ 03-02 阿朗壹古道、栗松溫泉
2014-02-05 ~ 02-19 Barcelona、Andorra (山中雪景令人難忘)、Sevilla、Singapore

2014-01-18 ~ 19 錐麓古道
2014-01-11 魚路古道、大油坑、八煙部落、八煙溫泉
2014-01-01 象山



2013年
2013-12-21~22 錐麓古道、立霧山
2013-12-07 皇帝殿

2013-11-15~16 玉山前峰 (#28)、玉山主峰 (#29)
2013-11-03~04 奇萊南峰 (#26)、南華山 (#27)

2013-10-19 七星池、恐龍接吻石、龜紋石、七星主峰、東峰、七星公園

2013-09-22 天母古道
2013-09-05~08 加羅湖「神代線」
2013-08-17~18 加羅湖 (四季林道)
2013-08-11 觀音山 (鷹仔尖、二尖、硬漢嶺)

2013-07-31 ~ 2013-08-05 日本富士山 (錐狀火山)
2013-07-27 二子坪、擎天崗、竹篙山
2013-07-20 風櫃嘴
2013-07-06 ~ 07 北合歡山下華岡

2013-06-29 ~ 30 合歡東峰 (#25)、北合歡山下天巒池順訪武法奈尾山
2013-06-24 平溪火車站、耳空龜山、四分子尾山、汐止大尖山
2013-06-15 擎天崗、七星山東峰、七星山主峰下苗圃
2013-06-01 天母古道

2013-05-26 冷水坑、七星山東峰、七星山主峰下苗圃



2012年
2012-12-31 八仙山
2012-12-30 白毛山
2012-12-29 馬崙山
2012-12-15 ~ 16 奇萊主北未竟,至奇萊稜線山屋
2012-12-08 天母古道
2012-12-06 象山

2012-11-08 ~ 13 聖稜線:池有山 (#23)、品田山前峰、大霸尖山霸基、小霸尖山、巴紗拉雲山、素密達山、雪山北峰 (#24)、凱蘭特昆山、北稜角

2012-10-19 ~ 21 大霸尖山霸基 (#19)、小霸尖山 (#20)、伊澤山 (#21)、加利山 (#22)
2012-10-10 草嶺古道

2012-09-22 龜山島401高地

2012-07-27 大屯主峰
2012-07-07 ~ 09 閂山 (#17)、鈴鳴山 (#18)、無明山西峰 (永生難忘,唉)

2012-06-28 ~ 29 畢祿山 (#15)、羊頭山 (#16) 鋸齒連峰、石門山、合歡主峰
2012-06-23 北插天山水源地 (摸摸行)
2012-06-17 棚集山
2012-06-03 大屯主峰、面天山、向天山 (龍頭教官地圖課)

2012-05-26 ~ 27 桃山、品田山 (#14) (公司雜事煩心)
2012-05-19 劍潭山、文間山、剪刀石山、金面山 (公司系統上線)
2012-05-07 松羅湖 (眼鏡蛇)

2012-04-20 檜山 (見到死去的青蛇,好久沒走新的中級山)
2012-04-14 ~ 15 合歡北峰、合歡西峰 (#13) 下華崗
2012-04-08 北插天山
2012-04-04 七星山南峰、主峰

2012-03-24 劍潭山
2012-03-17 ~ 18 郡大山 (#11)、望鄉山、西巒大山 (#12)
2012-03-11 大屯主峰

2012-02-26 ~ 2012-03-01 馬來西亞婆羅洲神山 (神奇)
2012-02-19 七星山主峰
2012-02-11 北插天山水源地 (摸摸行)
2012-02-05 北插天山水源地 (摸摸行)
2012-02-01 石碧潭山、中坑山、牛欄窩山、下橫坑山、雞寮坑山、南何山、南何山南峰、沙坑山、二確山、大肚山 (飛沙縱走)

2012-01-28 七星山主峰
2012-01-15 八仙山、佳保台山
2012-01-07 ~ 08 華崗上合歡主峰 (#10)(刺激) 



2011年
2011-12-31 ~ 2012-01-01 北大武山 (#9)
2011-12-17 ~ 18 奇萊北峰 (#7)、奇萊主峰 (#8)
2011-12-11 深按頭山 (大咖家後院)
2011-12-02 ~ 04 桃山 (#5)、詩崙山、喀拉業山 (#6)

2011-11-29 南插北峰(上宇內山)、南插天山、魯培山
2011-11-19 金面山、剪刀石山
2011-11-12 桃源谷下草嶺古道
2011-11-06 天母古道
2011-11-05 露門山西北稜縱走波露山東轉東北稜 

2011-10-29 ~ 30 立鷹山、三角山、櫻櫻山、合歡北峰 (#4)、武法奈尾山
2011-10-23 多崖山、北插天山(滿月圓瀑布、小樂佩、傳統路O形)(摸摸行)
2011-10-16 七星山主峰
2011-10-15 鳶嘴山連走稍來山
2011-10-08 ~ 09 東模故山東北稜 (可怕)

2011-09-24 ~ 25 波露山東轉東北稜
2011-09-17 ~ 18 露門山西北稜、大保克山北稜
2011-09-10 滿月圓山、北插天山西北稜、多崖山

2011-08-27 七星山主東峰
2011-08-19 ~ 22 雪山主峰 (#3)、雪山東峰 (#2) 訪翠池
2011-08-14 竹篙山
2011-08-13 卡保山、逐鹿山
2011-08-07 拉卡山
2011-08-06 組合山、樂佩山
2011-08-03 象山六巨石

2011-07-27 南勢角山
2011-07-24 七星山主東峰
2011-07-23 外鳥嘴山、蓮包山
2011-07-16 逐鹿山
2011-07-09 七星山主東峰

2011-06-26 東眼山
2011-06-25 新山夢湖 (未至新山)
2011-06-24 獅仔頭山前峰
2011-06-18 逐鹿山、卡保山
2011-06-14 仙跡岩
2011-06-05 石筍尖
2011-06-04 夫婦山

2011-05-29 面天山、向天山、向天池
2011-05-28 天母古道
2011-05-21 塔曼山
2011-05-14 小獅山

2011-04-23 猴山岳
2011-04-03 北插天山 (人生第一次爬中級山,也是一個人自己爬)

2011-03-05 大屯主南西峰



2010年
2010-12-18 七星山主峰
2010-07-18 草嶺古道
2010-03-07 石門山 (#1)(莫名其妙開始爬百岳)

2014年4月6日 星期日

[FWD] 事前不知…王金平聲明 國民黨團錯愕

事前不知…王金平聲明 國民黨團錯愕

立法院長王金平今天上午十一點多在議場西側門前發表聲明,表示兩岸監督條例立法前,不協商服貿。據了解,國民黨團幹部對此聲明內容感到錯愕,現正開會討論因應方式,下午將有正式回應。國民黨團首席副書記長費鴻泰指出,事前不知道王金平的聲明內容,而國民黨團黨幹部在發表聲明時站在王金平身後,並不代表幫他背書。

全文網址: 事前不知…王金平聲明 國民黨團錯愕 | 要聞 | 即時新聞 | 聯合新聞網 http://udn.com/NEWS/BREAKINGNEWS/BREAKINGNEWS1/8594928.shtml#ixzz2y6lzkFIW
Power By udn.com



蠻有梗的。

第一次在台灣參加遊行。
第一次在大馬路露天睡覺。
第一次在大馬路搭帳篷睡覺。

通通獻給可愛又可恨的台灣。我承認從巴塞隆納回來超討厭台灣的一切,但光是食物光是鬼島的人就難以拒絕福爾摩沙綿綿不絕的愛意。對了,還有變化多端的山,即便是山友傳說中的不會再來第二次的山,現在突然很想再走第三次。快失去了才知道曾經擁有的美好。

總之,別讓經濟的髒手汙染了台灣。

就算你要汙染台灣,麻煩照程序來,先立法再審查。

2014年4月3日 星期四

使用 BeautifulSoap 爬新聞連結

Python2 無縫接軌雖然之前寫 Python3 寫爽爽。



from bs4 import BeautifulSoup
from urllib2 import urlopen
from sys import exit

class Seed():
    def get(self):
        return [
            'http://www.appledaily.com.tw/',
            'http://www.libertytimes.com.tw/',
        ]

class Crawler():
    def crawl(self):
        results = {}
        for url in Seed().get():
            results[url] = self.crawl_url(url)
        return results

    def crawl_url(self, url):
        results = []
        response = urlopen(url)
        html_doc = response.read()
        soup = BeautifulSoup(html_doc)
        for link in soup.find_all('a'):
            normalized_link = self.normalize(url, link.get('href'))
            if normalized_link:
                results.append(normalized_link)
        return results

    def normalize(self, url, relative_link):
        if not relative_link:
            return None
        if relative_link.startswith('http'):
            return relative_link
        if relative_link.startswith('/'):
            return url + relative_link[1:]
        return None

def main():
    crawler = Crawler()
    results = crawler.crawl()
    for url in results:
        print 'Site =>', url, '\n'.join(results[url]), '\n'


if __name__ == '__main__':
    exit(main())