原创 poj2441(狀壓dp)

題目鏈接:http://poj.org/problem?id=2441,題意相當於給定n個公牛及它們各自想打的籃球場地,求取 方案數使得這n個公牛都有場地可打且這些場地均不重複。 看完《挑戰程序設計競賽》做的第一道狀態壓縮動態規劃題,狀態

原创 poj3977(折半搜索)

點擊打開題目鏈接 多數據集,每個數據集給出不超過35個數,求其中非空子集使得該子集數字和的絕對值最小。 如果有多個這樣的子集,取元素數目最少的。 最後輸出該子集中數字的和的絕對值,以及子集所含元素數目。 35個數,容易想到折半,對半分

原创 NEERC 2016年B題 Binary code

讀研以後好久沒有研究算法競賽的題目了。這段時間算法課,剛好作業是要講算法,就選了一道題目研究了一下,感覺還是蠻有意思的。但是說實話本弱雞太菜了,靠自己肯定解決不了這麼難的題,就參考了別人的代碼啦(這個也找了半天,有好多人的實現都沒看懂)。

原创 poj1949(拓撲,dp)

點擊打開題目鏈接 大意: 有n個任務,第i個任務需要時間xi來完成,並且第i個任務必須在它 “前面的” 某些任務完成之後才能開始。 給你任務信息,問你最短需要多少時間來完成任務。 這道題做完了以後感覺分類不太清晰,看了網上,有說拓撲

原创 poj1047(樹形dp)

題目 轉化下就是給出一棵樹求最少要斷掉多少條邊才能分隔出一個有p個節點的子樹 這道樹形dp就相對難一點了,我寫的中還用到了數組的滾動,整理出來方程即 f[root][j]=min{f2[root][j]+1,f2[root][k]+f[n

原创 打印十字圖 解題報告

思路:這道題本菜一開始確實沒有什麼頭緒,知道是模擬而且對稱,但是由於字符要麼是.要麼是$,感覺比較亂, 規律感覺無從下手。網上別人都說該題簡單,但是我看代碼還是看不懂~~~不過後來看到下面這張圖以後就 豁然開朗了!(參考:htt

原创 poj2955(區間dp)

題目 大意:給出一個字符串,求其中最長括號都已匹配好子串(只需知道長度即可) 比較簡單的區間dp, 對於f[i][i+1],如果第i個字符與第i+1個匹配則f[i][i+1]=2否則等於0 其他的,f[i][j]=max(f[i][k]

原创 poj1952(經典dp題)

點擊打開題目鏈接 下面是別處找來的中文翻譯版 【問題描述】     “逢低吸納”是炒股的一條成功祕訣。如果你想成爲一個成功的投資者,就要遵守這條祕訣:"逢低吸納,越低越買"這句話的意思是:每次你購買股票時的股價一定要比你上次購買時的股價

原创 poj2282(數位dp)

題目 這題題目比較好理解,就是統計a,b之間的數中數碼0~9分別出現的次數 思路: 如果a>b不妨將兩者互換順序,這樣就相當於a<=b了。然後該次數即1~b中數碼0~9出現次數 減去1~a-1中數碼0~9出現次數。 考慮某個數num,令v

原创 poj1200(字符串哈希)

點擊打開題目鏈接 題意就是,給出一個字符串,裏面有NC個不同字符,求其中長度爲n的不同子字符串個數 差不多就是字符串的哈希算法的一道簡單應用題了,《挑戰程序設計競賽》書上第373頁開始有相關內容 其中,假設字符串C=c1c2...cm,選

原创 提升輸入效率代碼

lrj《算法競賽入門經典訓練指南》中直接參考代碼的,感覺挺有用,就單獨拿出來當模板記了。 poj上一道線段樹改位運算還是TLE,迫不得已,就借鑑這個試試,果然過了。然後之前國王的煩惱看分數也八九 不離十,就代入了一下,提升了輸入效率,結果

原创 城市建設 解題報告

歷屆試題 城市建設   時間限制:1.0s   內存限制:256.0MB     問題描述   棟棟居住在一個繁華的C市中,然而,這個城市的道路大都年久失修。市長準備重新修一些路以方便市民,於是找到了棟棟,希望棟棟能幫助他。 C市中有

原创 算法提高 Problem S4: Interesting Numbers 加強版 解題報告

Problem Description   We call a number interesting, if and only if:   1. Its digits consists of only 0, 1, 2 and 3, and

原创 公式求值 解題報告

歷屆試題 公式求值   時間限制:1.0s   內存限制:256.0MB     問題描述   輸入n, m, k,輸出下面公式的值。          其中C_n^m是組合數,表示在n個人的集合中選出m個人組成一個集合的方案數。 輸

原创 斐波那契 解題報告

歷屆試題 斐波那契   時間限制:1.0s   內存限制:256.0MB     問題描述   斐波那契數列大家都非常熟悉。它的定義是: f(x) = 1 .... (x=1,2) f(x) = f(x-1) + f(x-2) ...