原创 BFS—POJ3414-Pots

較原文有兩處改動:1)以二維數組代替map,更簡潔有效   2)輸出操作過程,改進後更容易理解(原文好像也是對的,但是說不通) 原文地址POJ3414-Pots #include<iostream> #include<string> #i

原创 super繼承和普通父類繼承

當存在繼承關係的時候,有時候需要在子類中調用父類的方法,此時最簡單的方法是把對象調用轉換成類調用,需要注意的是這時self參數需要顯式傳遞,例如: class FooParent(object): def bar(self, mess

原创 拓撲排序POJ1094

題目:POJ1094 大意:對於N個大寫字母,給定它們的一些偏序關係,要求判斷出經過多少個偏序關係之後可以確定它們的排序或者存在衝突(有環存在,如A<B且B<A),或者所有的偏序關係用上之後依舊無法確定唯一的排序。 利用拓撲排序即可解決這

原创 數字hash _ 熟練掌握數組當作鏈表來用的技能

通過這道題要熟練掌握把數組當作鏈表來用的技能,這和圖的鄰接表的數組實現及其應用基於同樣的原理。 本題題目鏈接Snowflake Snow Snowflakes 每個雪花都有六個分支,用六個整數代表,這六個整數是從任意一個分支開始,朝

原创 decorator_python裝飾器

注意:解決縮進問題用tab鍵(不用空格) 基礎: # -*- coding:utf-8 -*- import functools def log(func): @functools.wraps(func) def

原创 回溯法的分析及N皇后問題

所謂的回溯法實質就是深度優先搜索,在每個路徑上一直向前尋找,到達某個結點不滿足約束函數時,就回溯到其父結點,從父結點的其他子樹向下尋找。 當某條路徑可以一直伸展到葉子結點時,就在葉子結點上繼續遍歷,遍歷的結果必然是葉子結點的某種情況不滿足

原创 BFS_catch the cow

實質就是遍歷所有可能的點(踩點),點入隊,先入先出,形成一棵枝繁葉茂的樹,誰先到達目的點,誰就勝利,輸出此條路徑累計的時間數。 所以要記錄每一次踩點的累計值step. 另外,一定要注意的是,已入隊的點千萬不要重複入隊,因爲這毫無意義(會重

原创 DFS—poj2488

解法一:與POJ3009 類似,都要先置位,(然後執行本次要完成的任務),最後復位!! #include<iostream> using namespace std; typedef class { public: int ro

原创 python進程和線程

單進程 from multiprocessing import Process import os def run_proc(name): print 'the %s process id is %d.' %(name,os.get

原创 DFS—POJ3083-Children of the Candy Corn

題目POJ3083大意: 給定一個迷宮,S是起點,E是終點,#是牆不可走,.可以走 先輸出左轉優先時,從S到E的步數 再輸出右轉優先時,從S到E的步數 最後輸出S到E的最短步數   W爲寬,列數 H爲高,行數   解

原创 python單元測試(自動化測試)

python內置的dict有如下功能: d=dict(a=1) print d 也能用d['a']訪問a的value, 我想拓展dict的功能,使其能使用d.a訪問a的value 代碼如下: # -*- coding:utf-8

原创 活動規劃問題的應用

問題描述:區間相交 實質就是求相交區間的總和。 首先明確自己是不可能與自己相交的,即單獨一行的各個區間之間是不重疊的。所以在向後查找的時候能夠確保程序的正確性。 這裏採用貪心的思想,先只考慮眼前的(所以要先排序),然後比較不同情況考慮

原创 序列化:json.dumps & json.loads

序列化: 序列化是將對象的狀態信息(內存中)轉換爲可以存儲或傳輸的形式的過程, 而不是變量存儲到磁盤的過程. 存儲到磁盤的過程應該是持久化。 序列化之後,就可以把序列化後的內容寫入磁盤,或者通過網絡傳輸到別的機器(如瀏覽器客戶端)上。

原创 python分佈式進程模型

分佈式進程:Process進程分佈到多臺機器上 Python的multiprocessing模塊不但支持多進程,其中managers子模塊還支持把多

原创 圖算法總結

圖算法大體無非兩種,廣度優先搜索和深度優先搜索。 BFS的應用包括求最短路徑,如Dijkstra算法;求最小生成樹,如prim和kruskul算法。 它們最大的目標就是求得一顆最小樹,或最短路徑,或最小生成,總之都是樹。 樹,最大的特徵就