沒有得到雷射**的蘇聯十分生氣,他們決定派遣一支特種部隊強行
登陸美國並造成一定的襲擊。 reddington 得到的情報是他們將在佛羅里達
海岸登陸,他決定派遣他的手下去阻擊他們。可惜的是, reddington 由於
不聽從**的意見,手中的部隊只剩下了 n 個人。人與人之間會有一定的
矛盾值,第 i 個人與第 j 個人的矛盾值為 ti,j,並且有 ti,i = 0, ti,j = tj,i。
reddington 希望將這 n 個人分為兩支小分隊,記為 a, b,每個人要麼屬
於分隊 a 要麼屬於分隊 b。對於一支小分隊 s,其內部的不安值
顯然的,假如一支分隊的不安值很高,那麼作戰能力就會很差。現在
給定你 n 以及乙個 n ∗ n 的矩陣 t,你需要告訴 reddington,最小的
d(a) + d(b) 是多少。
輸入包括多組資料。
對於每組資料:
第一行乙個整數 n。
接下來 n −1 行,第 i 行讀入 n −i 個數,第 i 行第 j 個數表示 ti,i+j。
2 ≤ n ≤ 250, 0 ≤ ti,j ≤ 109,資料組數不超過 2 組
一行,最小的 d(a) + d(b) 是多少 5
4 5 0 2
1 3 7
2 04
4//一種最優方案為: a = , b = ,此時 d(a) = 4, d(b) =0
~~~~~~~~~~~~~~~~~~~~~~~~~~
貪心+隨機化~
每次隨機化乙個貪心序列,然後順次加入,貪心地選擇對答案貢獻最小的加法,然後更新答案。800次就夠了。
**學自尹神~
#include#include#include#includeusing namespace std;
int n,a[251][251],c[251],now1,now2,k1,k2,ans;
bool b[251];
int read()
while(ch>='0' && ch<='9')
return x*f;
}int main()
if(now1+now2>=ans) break;
}ans=min(ans,now1+now2);
} printf("%d\n",ans);
} return 0;
}
nyoj 467 表示式求值)
時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 輸入第一行輸入乙個整數n,共有n組測試資料 n 10 每組測試資料只有一行,是乙個長度不超過1000的字串,表示這個表示式的中綴式,每個表示式都是以 結束。這個表示式裡只包含 與小括號這幾種符號。其中小括號可以巢狀使用。資料保證...
中綴式變字尾式 nyoj 467
時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 輸入第一行輸入乙個整數n,共有n組測試資料 n 10 每組測試資料只有一行,是乙個長度不超過1000的字串,表示這個表示式的中綴式,每個表示式都是以 結束。這個表示式裡只包含 與小括號這幾種符號。其中小括號可以巢狀使用。資料保證...
NYOJ467中綴式變字尾式
輸入 第一行輸入乙個整數n,共有n組測試資料 n 10 每組測試資料只有一行,是乙個長度不超過1000的字串,表示這個表示式的中綴式,每個表示式都是以 結束。這個表示式裡只包含 與小括號這幾種符號。其中小括號可以巢狀使用。資料保證輸入的運算元中不會出現負數。資料保證除數不會為0 輸出每組都輸出該組中...