原创 bzoj1008:越獄

題目描述: 監獄有連續編號爲1...N的N個房間,每個房間關押一個犯人,有M種宗教,每個犯人可能信仰其中一種。如果相鄰房間的犯人的宗教相同,就可能發生越獄,求有多少種狀態可能發生越獄 大致思路: 這個題目一眼下去好像是動態規劃,可以通過n

原创 圖論強連通專題:POJ1236

題目描述: 有一些學校通過單向網絡連通,求出下面兩個問題: 1.至少在多少個學校拷貝一個軟件,使得這個軟件能通過網絡傳遍所有學校。 2.至少加多少條單向網絡,使得任意在一個學校拷貝軟件,就能使得這個軟件通過網絡傳遍所有學校。 大致思路:

原创 POJ1258——最小生成樹

題目描述: 有n個農場,兩兩之間有路,求連接所有農場最小的花費。 大致思路: 最小生成樹的模板題。Prim,克魯斯卡爾……等等,能搞就行! 代碼: #include <iostream> #include <cstdio> #includ

原创 字符串專題:POJ3261——字符串哈希

題目描述:          給出一個數列,求出數列中最長連續子序列,並且滿足該子序列在數列中出現超過k次。 大致思路:          最開始想的是用字典樹,以數列中每一個元素a[i]爲開頭到末尾的序列都放到Trie中,然後在插入過程

原创 POJ1039——計算幾何

題目描述: 有一條水管,有很多拐點,水管壁不反射光線,不透明。從入口射入一條光線,最遠能射多遠。 大致思路: 對於任意一條光線,如果它沒有和任意一個拐點相交,那麼就可以通過平移使得光線變長,如果和一個拐點相交,而不和另一個相交,就可以通過

原创 2-SAT——POJ3678

題目描述: 給出n個布爾變量xi,每個變量或者取1或者取0,給出m條兩個變量的邏輯運算結果,運算包括與或異或三種。問是否存在一種取值方法使得m條關係成立。 大致思路: 看題目描述很像2-SAT的定義,但是就是在過程中構造邊的地方有點複雜,

原创 大工軟件學院DP入門練習題解

傳送門:戳這裏 第一題:get the ball 狀態很容易能看出來是一個二維的狀態,定義dp(i,j)表示第i次傳球球在第j個人手裏的方案數。因爲只能從相鄰的人手裏拿到,所以狀態轉移方程也很好確定,dp[i,j] = dp[i-1,j-

原创 二分圖匹配——POJ3041

題目描述: n*n的地圖上有k個小行星。每次攻擊可以消滅一行或者一列行星,問最少需要多少次攻擊能全部消滅行星。 大致思路: 對於每個行星可以選擇橫向攻擊,或者縱向攻擊,這樣建邊之後整張圖就變成了二分圖,而最後的答案求解就變成了二分圖最大匹

原创 約瑟夫環——POJ3379

題目描述: 給出一個長度是n的字符串環,每次擱k個加入字符串中對應位置的字母序的下一個字母,執行m次,問最後一次插入的是什麼字母。 大致思路: 正着想的話只能用模擬的方法解決,但是m有10^9這麼大,而把問題倒過來想一下的話,那就變成了給

原创 簡單數學題——ZOJ3355

題目描述: 一場球賽勝平負都有一個賠率,如果猜對了你就獲得相應的錢。問有沒有一種穩賺不賠的投注方法。 大致思路: 穩賺不賠必然是勝平負按照一定的比例來押注,之後列一個不等式簡單算一下,就發現只要有(1/a+1/b+1/c) > 1那麼就一

原创 最大化平均值——POJ2976

題目描述: 有n場考試,每場考試有b個問題,你每次能答對a個問題,你現在可以捨棄k個科目,使得你的分數100*Σa/Σb最大。 大致思路: 這個題目和poj3111思路很類似,也是平均化最大值,詳細思考過程參見POJ3111。不過這個題需

原创 2014ACM Regional北京現場賽B題——HDU5113

題目描述: 給出k種顏色,給n*m的格子染色,保證任意一個格子與周圍格子顏色不同。 大致思路: 這個題可以搜索+剪枝過,但是更巧妙的方法就是構造法,構造的過程很簡單,先將n*m的格子黑白染色,使得任意黑格子周圍都是白格子,之後挑最大的顏色

原创 枚舉概率——ZOJ3356

題目描述: 給你S元猜足球勝平負,最壞情況下的收益。 大致思路: 枚舉每一元錢,投在當前收益最低的一項,最後去收益的最小值,就是答案。 代碼: #include <iostream> using namespace std; cons

原创 動態規劃之簡單遞推——hdu2577

題目描述: 給出一個字母序列,從非大寫鎖定狀態開始,敲完這個字母串,以非大寫鎖定狀態結束,問最少按鍵盤的次數。 大致思路: 狀態很好判斷,定義dp[i][1]和dp[i][0]分別表示完成前i位鍵盤處於大寫鎖定狀態和非大寫鎖定狀態的最少操

原创 最大化平均值——poj 3111

題目描述: Demy有n顆鑽石,每顆鑽石都有價值和質量,現在要帶走其中的k顆鑽石,要使得單位價值最大,即Σv/Σw的值最大。 大致思路: 這個題很明顯就是要最大化平均值,然而採用貪心的方法每次取單位價值最大的鑽石,是顯然不行的。所以應該採