原创 even parity

轉自http://www.acmerblog.com/uva-11464-even-parity-4653.html 這道題的算法實現態變態了,奇妙的技巧,至少我是這樣認爲的。我想了很久也不會,書上代碼看不懂,這篇講的比較清晰。

原创 uva10891

設dp[i][j]爲i->j第一個去的人所能的到的最大和,則A能去的的最大和爲dp[1][n],B的和爲sum[i->j]-dp[i][n]。 dp[i][j]=sum[i->j]-min{dp[i+1...j][j],dp[i][j-1

原创 floyed 理解

    如果有一個矩陣D=[d(ij)],其中d(ij)>0表示i城市到j城市的距離。若i與j之間無路可通,那麼d(ij)就是無窮大。又有d(ii)=0。編寫一個程序,通過這個距離矩陣D,把任意兩個城市之間的最短與其行徑的路徑找出來。

原创 sublime3 c++環境配置,可cmd輸入,安裝插件管理 Package Control,亂碼

sublime3 c++環境配置: http://blog.csdn.net/lhshu2008/article/details/17582949 最後還要在tools->build system裏面選擇“C”(即新建的C.sublime

原创 poj 2431 優先隊列 情景等價

把到終點的距離改爲到起點的距離。當經過一個加油站i的時候,就認爲在以後的路程中可以獲得適用Bi油的權力。 而當油用完的時候,可以選擇所經過的加油站中能加最大油的那個站。(這是一種情景等價,將不好想的等價爲一種簡單又不影響結果的情形,類同螞

原创 poj 2479

要求一串中兩段連續的最大和。思路是:現在讀取每個數字的時候進行一次dp,dp[i]=max{dp[i-1]+a[i],a[i]},即i(包括i)向左的連續的最大和值。 然後從右向左(最後一個開始)找連續最大的和值,到i時,與dp[i-1]

原创 graveyard,neerc(墓地雕塑)

在一個周長爲 10000 的圓上等距分佈着 n 個雕塑。如今又有 m 個新雕塑參加(地位可以隨便擺放),所有 n + m 個雕塑能在圓周上均勻分佈。這就須要移動一些原有的雕塑。請求 n 個雕塑移動的總間隔最小。 要使移動距離最小,則加入m

原创 lower_bound(),

函數lower_bound()在first和last中的前閉後開區間進行二分查找,返回大於或等於val的第一個元素位置。如果所有元素都小於val,則返回last的位置 舉例如下: 一個數組number序列爲:4,10,11,30,6

原创 poj 1015 動態規劃 難

這道題我是看別人的思路寫的,因爲有個絕對值,無法轉移狀態,自己傻得非要把絕對值表示出來, 其實可以在計算完成後篩選,我這個菜鳥估計是受揹包的的影響,想狀態的時候還想着前幾個中選出多少個。 這道題的狀態是f[i][j],i選了的人數,邊界爲

原创 poj 1182(食物鏈)並查集

第一種說法是"1 X Y",表示X和Y是同類。  第二種說法是"2 X Y",表示X吃Y。  對於第一種說法,需要檢查是否前面出現過2 x y,或 2 y x。對於第二種說法,需要檢查是否出現過1 x y,2 y x。 如果對於每個出現的

原创 0-1揹包

0-1揹包問題的回朔法實現 設有0-1揹包問題,p(1,2...n)價值,w(1,2...n) 重,c揹包容量。 利用深度優先搜索,構造解空間樹。每一個物品有1(取),0(不取),分別對應解空間樹的左右子樹。故解空間樹爲n+1深的完全二

原创 uva 10859 樹形dp

有向無環圖可以看做森林。對於每棵樹,可以構建成有根樹。很重要的一點,有兩個要求,一個取最大,一個取最小。爲了 好表達最有解,將兩個值用某種關係合併爲一個值。這道題爲:m*a+b,讓a起到主要作用。m的值要大於b與-b的值。 在做這道題的時

原创 poj 3254

poj 3254 Corn Fields #include <stdio.h> #include <cstring> #include <iostream> using namespace std; #define mod 1000000

原创 poj 3253 huffman 貪心

對於每切一次,都會產生兩個字段,其過程爲一個二叉樹。而要使中的代價最小,與huffman編碼是一個道理。 因此可以以長度爲權值,構建代價最小的huffman樹。實現過程一些技巧,用f表示最小的下標,e爲次小。 每合併一次,總數減一。 /

原创 la 3882

這道題如果用普通方法,速度較慢。 這兒用到了遞推的方法:像用動態規劃一樣,轉化爲相同的子問題。如何轉化呢,就從下一個開始數數的地方標零,然後有n-1個個數。但是原來爲k的地方的被標記爲零了, 所以還要在加上一個k,還原到原來的k。另一個問