计算最少出列多少位同学,使得剩下的同学排成合唱队形(C++)
来源:互联网 发布:ubuntu论坛 编辑:程序博客网 时间:2024/04/28 01:31
#include <iostream>using namespace std;const int maxn = 100 + 1;int main(){int n;int a[maxn];int f1[maxn];//存放合唱队的人数(从左向右)int f2[maxn];//存放合唱队的人数(从右向左)cin>>n;for(int i=1;i<=n;i++)//第0个位置不存放数据,符合平常的思维习惯。cin>>a[i];for(int i=1;i<=n;i++)//由左向右依次遍历{f1[i] = 1;//至少有一个人符合条件,就是他自己。所以赋初值1.for(int j=1;j<i;j++){if(a[i]>a[j]&&f1[i]<f1[j]+1) //f1[i]<f1[j]+1很关键的条件,动态问题f1[i]= f1[j]+1;}}for(int i=n;i>=1;i--)//由右向左依次遍历{f2[i] = 1;//至少有一个人符合条件,就是他自己。所以赋初值1.for (int j=i+1;j<=n;j++){if(a[i]>a[j]&&f2[i]<f2[j]+1)f2[i]=f2[j]+1;}}int ans = 0;for(int i=1;i<=n;i++)if(ans<f1[i]+f2[i]-1)ans=f1[i]+f2[i]-1;//最佳解cout<<n-ans<<endl;//需要出列的人数return 0;}
0 0
- 计算最少出列多少位同学,使得剩下的同学排成合唱队形(C++)
- 报数为3的同学离开,计算最后剩下那个同学
- 1999名同学排成一排
- 合唱队形(简单的动规)
- RQNOJ(- - !)合唱队形
- 合唱队形(LIS)
- 同学
- 合唱队形(动态规划)
- 合唱队形(动态规划)
- cugb 1032 (和1009的合唱队形完全一样)
- 类似于 合唱队形 —— hdu 1257 最少拦截系统
- 合唱队形
- 合唱队形
- 合唱队形
- 合唱队形
- 合唱队形
- 合唱队形
- 合唱队形
- YZ3D项目怕坑手记
- 学习基数排序心得
- shoot
- POJ 1151 Atlantis(线段树离散化求面积并)(C++)
- 求职准备414
- 计算最少出列多少位同学,使得剩下的同学排成合唱队形(C++)
- 文章标题
- STL之Vector(Linux内核)完整实现
- 第六章 选择结构程序设计
- P1508 Likecloud-吃、吃、吃
- Python笔记-文本字符串格式化
- 洛谷 3372_【模板】线段树 1_线段树
- hibernate学习(1):hibernate基本架构和关系映射详解
- 网站日志统计案例分析与实现