這是一道最長遞增子串行加強版。
只需計算以a[i]為結尾的最長遞增子串行,以a[i]為開頭的最長遞減子串行(這個實際就是逆序後的以a[i]為結尾最長遞增子串行嘛!)
兩個部分**:
for(i=1;ia[j] && f1[j]+1>max)
}f1[i]=max;
} for(i=n-2;i>=0;i--)
}f2[i]=max;/
}
我一開始犯了乙個錯誤:注意標記部分,我一開始寫的是f2[i]=f2[i]+max-1;本意是直接計算出符合題意的序列總長度,然而這是不對的,因為f2[i]會影響到後面的計算。而且即使可以,f2[n-1]也是沒有計算的.
最後這樣處理就ok了。
for(i=0;imax)
max=f2[i];
} printf("%d\n",n-max+1);
九度OJ 題目1131 合唱隊形
題目描述 n位同學站成一排,老師要請其中的 n k 位同學出列,使得剩下的k位同學不交換位置就能排成合唱隊形。合唱隊形是指這樣的一種隊形 設k位同學從左到右依次編號為1,2,k,他們的身高分別為t1,t2,tk,則他們的身高滿足t1 t2 ti ti ti 1 tk 1 i k 你的任務是,已知所有...
九度 1131 合唱隊形
題目1131 合唱隊形 時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 3549 解決 1104 題目描述 n位同學站成一排,老師要請其中的 n k 位同學出列,使得剩下的k位同學不交換位置就能排成合唱隊形。合唱隊形是指這樣的一種隊形 設k位同學從左到右依次編號為1,2,k,他們的身高分...
1131 合唱隊形
題目描述 n位同學站成一排,老師要請其中的 n k 位同學出列,使得剩下的k位同學不交換位置就能排成合唱隊形。合唱隊形是指這樣的一種隊形 設k位同學從左到右依次編號為1,2,k,他們的身高分別為t1,t2,tk,則他們的身高滿足t1 t2 ti ti ti 1 tk 1 i k 你的任務是,已知所有...