一道特別毒瘤的題,好像目前沒有完全的正解,只有乙個比較優的解法:
f[i][j]表示從i~j所用的最小數量.
首先,去重,就是將所有連續的相同的點縮成乙個點,sum[i]表示縮點後新圖第i個位置有幾個點.
如果g[i]==g[j],加起來的數量大於等於三(sum[i] + sum[j] >= 3),則f[i][j] = f[i+1][j-1];否則等於上式加1.
對於普通情況,跑模板即可.
1 #include2 #include3 #include4 #include56using
namespace
std;78
int n,a,g[501],pr,cnt = 1,tot,sum[501],f[501][501];9
10int
main()
17 pr =a;
18for(int i = 2;i <= n; i++) 27}
28 g[++tot] =a;
29 sum[tot] =cnt;
30for(int i = 1;i <= tot; i++)
31if(sum[i] >= 2) f[i][i] = 1;32
else f[i][i] = 2;33
for(int len = 1;len < tot; len++)
34for(int i = 1,j = i + len;j <= tot; i++,j++)
41for(int k = i;k < j; k++)
42 f[i][j] = min(f[i][j],f[i][k] + f[k+1
][j]);43}
44 printf("
%d",f[1
][tot]);
45return0;
46 }
洛谷P4049 JSOI2007 合金
某公司加工一種由鐵 鋁 錫組成的合金。他們的工作很簡單。首先進口一些鐵鋁錫合金原材料,不同種類的原材料中鐵鋁錫的比重不同。然後,將每種原材料取出一定量,經過融解 混合,得到新的合金。新的合金的鐵鋁錫比重為使用者所需要的比重。現在,使用者給出了 n 種他們需要的合金,以及每種合金中鐵鋁錫的比重。公司希...
洛谷P4049 JSOI2007 合金 題解
題目鏈結 首先,材料的前兩個屬性可以唯一確定乙個材料,合金的前兩個樹形也可以唯一確定乙個材料。那麼材料和合金都可以被看成平面上的點 a i,b i 或 d i,e i 不難發現,一些材料能表示出一種合金當且僅當這個合金 在平面上的點 在選取的材料 在平面上的點 組成的凸包內。不難發現,選取的點凸包上...
洛谷P4053 JSOI2007 建築搶修
小剛在玩jsoi提供的乙個稱之為 建築搶修 的電腦遊戲 經過了一場激烈的戰鬥,t部落消滅了所有z部落的入侵者。但是t部落的基地裡已經有n個建築設施受到了嚴重的損傷,如果不盡快修復的話,這些建築設施將會完全毀壞。現在的情況是 t部落基地裡只有乙個修理工人,雖然他能瞬間到達任何乙個建築,但是修復每個建築...