合唱队形(动规,最长不下降子序列)
2017-04-07 20:05
253 查看
N位同学站成一列,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。
合唱队形是指这样一种队形,设K位同学从左到右依次编号为1、2、。。。,K,他们的身高分别为T1,T2,...,Tk,则他们的身高满足T1<...<Ti<Ti+1>...>TK(1<=i<=K).
你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。
【输入文件】
输入文件chorus.in的第一行是一个整数N(2<=N<=100),表示同学的总数。第一行有n个整数,用空格分隔,第i个整数Ti(130<=Ti<=230)是第i位同学的身高(厘米)。
【输出文件】
输出文件chorus.out包括一行,这一行只包含一个整数,就是最少需要几位同学出列。
【样例输入】
8
186 186 150 200 160 130 197 220
【样例输出】
4 //求从左到右和从右到左每个点目前的最长不下降子序列,加起来求最大
合唱队形是指这样一种队形,设K位同学从左到右依次编号为1、2、。。。,K,他们的身高分别为T1,T2,...,Tk,则他们的身高满足T1<...<Ti<Ti+1>...>TK(1<=i<=K).
你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。
【输入文件】
输入文件chorus.in的第一行是一个整数N(2<=N<=100),表示同学的总数。第一行有n个整数,用空格分隔,第i个整数Ti(130<=Ti<=230)是第i位同学的身高(厘米)。
【输出文件】
输出文件chorus.out包括一行,这一行只包含一个整数,就是最少需要几位同学出列。
【样例输入】
8
186 186 150 200 160 130 197 220
【样例输出】
4 //求从左到右和从右到左每个点目前的最长不下降子序列,加起来求最大
1 //合唱队形 (同登山) 2 #include<iostream> 3 #include<cstdio> 4 #include<cstdlib> 5 using namespace std; 6 const int maxx=101; 7 int a[maxx],b[maxx],c[maxx]; 8 int main() 9 { 10 int n; 11 scanf("%d",&n); 12 for(int i=1;i<=n;i++) 13 scanf("%d",&a[i]); 14 for(int i=1;i<=n;i++) 15 { 16 b[i]=1; 17 for(int j=1;j<=i-1;j++) 18 { 19 if(a[j]<a[i]&&b[i]<b[j]+1) 20 b[i]=b[j]+1; 21 } 22 } 23 for(int i=n;i>=1;i--) 24 { 25 c[i]=1; 26 for(int j=i+1;j<=n;j++) 27 { 28 if(a[j]<a[i]&&c[i]<c[j]+1) 29 c[i]=c[j]+1; 30 } 31 } 32 int maxl=0; 33 for(int i=1;i<=n;i++) 34 if(c[i]+b[i]>maxl) 35 maxl=c[i]+b[i]; 36 printf("%d",n-maxl+1); 37 return 0; 38 }View Code
相关文章推荐
- noip2004 合唱队形 (最长严格上升子序列+最长严格下降子序列)
- 洛谷Oj-合唱队形-最长上升子序列+最长下降子序列
- 合唱队形 (dp-最长不上升/不下降子序列)
- 1065: 合唱队形(最长上升,下降子序列)
- poj 1836 Alignment -dp(合唱队形变式)-最长上升子序列+最长下降子序列
- 合唱队形----RQNOJ_26----最长单调子序列
- 九度OJ 1131:合唱队形 (DP、最长上升下降序列)
- rnqoj-28-合唱队形-最长上升子序列
- 合唱队形---最长上升子序列变形
- rnqoj-28-合唱队形-最长上升子序列
- 题目1131:合唱队形(最长递增子序列进阶)
- [ACM] 九度OJ 合唱队形 (最长递增子序列改版)
- 【例题】【动规(最长XX子序列)】NKOJ 1042 合唱队形(NOIP)
- 1091 合唱队形(最长上升子序列模板)
- 九度OJ 1131 合唱队形 -- 动态规划(最长递增子序列)
- 合唱队形-最长递增子序列变种
- 九度OJ 1131 合唱队形 -- 动态规划(最长递增子序列)
- 合唱队形(LIS最长递增子序列) 解题过程
- 动态规划之线性动规(钢条切割、合唱队、最长递增子序列)
- 九度OJ-1131:合唱队形(最长递增子序列)