[題解+總結]20151010

來源:互聯網
上載者:User

標籤:

1、前言

又是綠書上的題目。這種畫風感覺還是好些的,雖然都是遠古時代的。今天題目感覺難度適中,但是太過於偏向動態規划了吧。。。還有搜尋傻逼題亂入。

 

2、Sort 產品排序

大概題意:給出n個產品,每個產品有加工時間和冷卻時間。現有兩台加工機,每台加工機同一時間只能加工一個產品。產品加工完後就進入冷卻時間。要求在儘可能短的時間內完成所有產品的所有工序,求最短時間。

題解:

  動態規劃。設存在兩個產品x和y,y的冷卻時間大於x,且x排在y之前。如果x和y是相鄰的,可以發現在這種情況下完成時間是max{xa+xb,xa+ya+yb}=xa+ya+yb;如果x排在y之後,則完成時間是max{ya+yb,xa+ya+xb}<=xa+ya+yb,所以y在x前面一定不會劣於x在y前面。所以我們按照b排降序,一定能找到最優解。

  設f[i][j]表示前i個產品,其中第一個機器上的加工時間之和為j時的最優解,s[i]=a[j](j∈[1,j])。狀態轉移方程:f[i][j]=min{max{f[i-1][j-a[i].x],j+a[i].y},max{f[i-1][j],s[i]-j+a[i].y}},分別表示放入機器1還是機器2。

 

3、Ball 分球

大概題意:將n個有標號的球放入m個沒有區別的盒子中,每個盒子至少有一個球,求方案數。

總結:我不管是什麼第二類斯特林數云云。。。反正我又是找規律發現出來的。

題解:

  動態規劃第二彈。設f[i][j]表示將前i個球放入j個盒子中的方案數,f[i][j]=f[i-1][j-1]+f[i-1][j]*j。計算的時候要高精度加乘法。

 

4、Map 地圖

大概題意:在一個n*m的0-1矩陣,求1的極大連通塊個數。

題解:

  搜尋傻逼題亂入一大堆動態規劃題目中。

 

5、Polygon 座標變換

大概題意:給定平面中n個點,求一個凸包,使得凸包的頂點含給定的點最多。凸包邊上不能有給定點,且原點必須在凸包上。

總結:這道題看上去是計算幾何的題目,但是在求解過程中,計算幾何的成分並不是很多。我試著直接用求凸包的方式去求,但是被卡在了共線的問題上。

題解:

  因為要選盡量多的點,我們同樣地可以考慮用動態規划去取最優解。狀態比較特殊,每次的狀態都是以邊為主體,f[i][j]表示當前選擇了(i,j)這條邊所求得的最多的邊數。首先初始狀態顯然i=1,最後求得答案的狀態顯然j=1。因為點數不多,我們可以根據當前的邊,然後選擇其他所有沒有選的點,首先判斷是否滿足凸包的要求(利用叉積判斷這個點在當前線的左側還是右側),然後再找到最佳的點。

  所以說從頭到尾真正和計算幾何有緊密聯絡的地方就是一個計算整數叉積的地方,其他的部分就是最簡單的動態規劃。

[題解+總結]20151010

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.