洛谷P4049 JSOI2007 合金 題解

2022-03-10 20:52:40 字數 910 閱讀 4882

題目鏈結

首先,材料的前兩個屬性可以唯一確定乙個材料,合金的前兩個樹形也可以唯一確定乙個材料。

那麼材料和合金都可以被看成平面上的點\((a_i,b_i)\)或\((d_i,e_i)\)

不難發現,一些材料能表示出一種合金當且僅當這個合金(在平面上的點)在選取的材料(在平面上的點)組成的凸包內

不難發現,選取的點凸包上的邊一定滿足:所有的合金代表的點都在這條邊的某一側,或者在這條線段上(不是直線上)

那麼我們直接求個最小環就行了。

複雜度\(o(n^3+mn^2).\)

注意特判答案為 1 或 2 的情況。

#include #define db long double

#define eps 1e-7

using namespace std;

const int n = 505,m = 505;

struct point

bool operator < (const point w) const

}a[n],b[m];

bool operator == (point a,point b)

point operator + (point a,point b)

point operator - (point a,point b)

inline db operator * (point a,point b)

inline bool left(point a,point b,point p)

int n,m,dp[n][n],ans;

inline bool check(point p1,point p2)

return 1;

}int main()

洛谷P4049 JSOI2007 合金

某公司加工一種由鐵 鋁 錫組成的合金。他們的工作很簡單。首先進口一些鐵鋁錫合金原材料,不同種類的原材料中鐵鋁錫的比重不同。然後,將每種原材料取出一定量,經過融解 混合,得到新的合金。新的合金的鐵鋁錫比重為使用者所需要的比重。現在,使用者給出了 n 種他們需要的合金,以及每種合金中鐵鋁錫的比重。公司希...

洛谷 P2145 JSOI2007 祖碼

一道特別毒瘤的題,好像目前沒有完全的正解,只有乙個比較優的解法 f i j 表示從i j所用的最小數量.首先,去重,就是將所有連續的相同的點縮成乙個點,sum i 表示縮點後新圖第i個位置有幾個點.如果g i g j 加起來的數量大於等於三 sum i sum j 3 則f i j f i 1 j ...

洛谷P4053 JSOI2007 建築搶修

小剛在玩jsoi提供的乙個稱之為 建築搶修 的電腦遊戲 經過了一場激烈的戰鬥,t部落消滅了所有z部落的入侵者。但是t部落的基地裡已經有n個建築設施受到了嚴重的損傷,如果不盡快修復的話,這些建築設施將會完全毀壞。現在的情況是 t部落基地裡只有乙個修理工人,雖然他能瞬間到達任何乙個建築,但是修復每個建築...