題目鏈結
首先,材料的前兩個屬性可以唯一確定乙個材料,合金的前兩個樹形也可以唯一確定乙個材料。
那麼材料和合金都可以被看成平面上的點\((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部落基地裡只有乙個修理工人,雖然他能瞬間到達任何乙個建築,但是修復每個建築...