2555.霧雨魔理沙 {動態規劃}

Description

在幻想鄉,霧雨魔理沙是住在魔法之森普通的黑魔法少女。話說最近魔理沙從香霖堂拿到了升級過後的的迷你八卦爐,她迫不及待地希望試試八卦爐的威力。在一個二維平面上有許多毛玉(一種飛行生物,可以視爲點),每個毛玉具有兩個屬性,分值value和倍率mul。八卦爐發射出的魔法炮是一條無限長的直線形區域,可以視爲兩條傾斜角爲α的平行線之間的區域,平行線之間的距離可以爲任意值,如下圖所示:
這裏寫圖片描述
藍色部分上下兩條長邊之間就是這次八卦爐的攻擊範圍,在藍色範圍內的毛玉(紅點)屬於該此被擊中的毛玉,如果一個毛玉剛好在邊界上也視爲被擊中。毛玉擊中以後就會消失,每次發射八卦爐得到分值是該次擊中毛玉的分值和乘上這些毛玉平均的倍率,設該次擊中的毛玉集合爲S,則分值計算公式爲:
  Score = SUM{value[i] | i 屬於 S} * SUM{mul[i] | i 屬於 S} / |S|
  其中|S|表示S的元素個數。魔理沙將會使用若干次八卦爐,直到把所有毛玉全部擊中。任意兩次攻擊的範圍均不重疊。最後得到的分值爲每次攻擊分值之和。現在請你計算出能夠得到的最大分值。


Input

第1行:1個整數N,表示毛玉個數
第2..N+1行:每行四個整數x, y, value, mul,表示星星的座標(x,y),以及value和mul
第N+2行:1個整數α,表示傾斜角角度,0°到180°
3
1 3 3 1
2 1 2 2
3 4 2 1
45


Ouput

第1行:1個實數,表示最大分值,保留三位小數
9.333


分析:

這道題目其實不難,難就難在幾何上。
假這一題是一個序列,那就變得十分簡單,直接dp就行了。
按照這個思路去想:過其中一個點做一條直線,與X軸的夾角爲α度,就可以得到一個與x軸的交點。把每一個點都做一次,不就變成了一個序列了嗎?
如圖:
這裏寫圖片描述
但是這個與X軸的交點怎麼算呢?
直線方程y=kx+b。
我們知道x1和y1,
但我們不知道k和b。
題目中給出了直線與X軸的夾角度數α,那麼k=tan(απ/180)
知道k以後,b就很好算了。
將y2=0代入方程y=kx+b,就可以算出x2,也就是得到與X軸的交點的座標了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章