輸入第一行乙個t(≤200),表示測試組數:
每組第一行乙個n(1≤n≤100),表示化裝舞會場數;
第二行n個整數ci(1≤ci≤100)表示化裝舞會型別,按參加的先後順序。
每組資料:先輸出「case x: 」,其中x表示測試組號,後面是所需最少的服飾數。
2 4
1 2 1 2
7 1 2 1 1 3 2 1
case 1: 3
case 2: 4
區間dp。
設f[i][j]為第i個舞會到第j個舞會需要多少件衣服。
首先f[i][i] = 1。
如果a[i] = a[j],那麼f[i][j] = f[i][j-1]。
然後列舉k,f[i][j] = min(f[i][k], f[k+1][j]),(i <= k < j)。
#include
#include
#include
using
namespace
std;
const
int n = 100 + 10, inf = 0x3f3f3f3f;
int t, n;
int a[n], f[n][n], tot;
void work()
f[n][n] = 1;
for(int l = 2; l < n; l++)
}printf("case %d: %d\n", ++tot, f[1][n]);
}int main()
return
0;}
萬聖節派對
時間限制 1000 ms 記憶體限制 65535kb 難度 1 描述 萬聖節有乙個party,xadillax顯然也要去湊熱鬧了。因為去湊熱鬧的人數非常龐大,幾十w的數量級吧,自然要進場就需要有門票了。很幸運的,xadillax竟然拿到了一張真 門票!這真 門票的排列規則有些奇怪 門票號是由0 6組...
萬聖節派對
門票號是由0 6組成的六位數 0 6這幾個數字可重用 過濾每乙個門票號 第乙個過濾條件 每一位不能有三個連續相同的數字 如123335是不行的 第二個過濾條件 每乙個門票號相鄰的兩位相差必須在四以下 4 如016245是不行的 輸入第一行乙個n,代表輸入個數 接下去n行,每行兩個數字x,y x y ...
萬聖節派對
描述 萬聖節有乙個party,xadillax顯然也要去湊熱鬧了。因為去湊熱鬧的人數非常龐大,幾十w的數量級吧,自然要進場就需要有門票了。很幸運的,xadillax竟然拿到了一張真 門票!這真 門票的排列規則有些奇怪 門票號是由0 6組成的六位數 0 6這幾個數字可重用 每乙個門票號的每一位不能有三...