华为OJ-合唱队
2024-10-19 18:39:11
华为OJ-初级题-合唱队
思路与分析
本题可以用DP的方法,分别从正向和逆向的两个方向求,该数组即186 186 150 200 160 130 197 200的上升对大序列。正向为[1, 1, 1, 2, 2, 1, 3, 4],逆向为[3, 3, 2, 3, 2, 1, 1, 1]。
然后将两个序列相加取最大值为5,根据题意出列的人数为N -(5 - 1)。注:减去1的原因是为中间的数被正序和逆序加了两次。
第一次做这种题表示很蒙蔽<`_`>~那么下面是源码。
本题参考代码
import java.util.Arrays;
import java.util.Scanner;
/**
* 合唱队
* array[]:待处理数据
* Inc[]:正向遍历得到上升的最大序列
* Dec[]:逆向遍历得到上升的最大序列
*
* Created by Evan on 2016-8-29.
*/
public class ChorusDp { public static void main(String []args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int N = sc.nextInt();
int [] array = new int [N];
int [] Inc = new int [N];
int [] Dec = new int [N];
for( int i = 0; i < N;i++){
array[i] = sc.nextInt();
}
//正向遍历得到上升的最大序列的个数是多少,本题为[1, 1, 1, 2, 2, 1, 3, 4] Inc[0] = 1;
for( int i = 1; i < N ; i++){
Inc[i] = 1;
for( int j = 0 ; j < i;j++){
if(array[i] > array[j] && Inc[j] + 1 > Inc[i]){
Inc[i] = Inc[j] + 1;
}
}
}
//System.out.println(Arrays.toString(Inc));
//逆向最长上升序列的个数,本题为[3, 3, 2, 3, 2, 1, 1, 1]
Dec[N - 1] = 1;
for(int i = N - 2; i >=0; i--){
Dec[i] = 1;
for(int j = N - 1; j > i; j--){
if(array[i] > array[j] && Dec[j] + 1 > Dec[i]){
Dec[i] = Dec[j] + 1;
}
}
}
//System.out.println(Arrays.toString(Dec));
int temp = Inc[0] + Dec[0];
for(int i = 1; i < N ;i++){
if(Inc[i] + Dec[i] > temp){
temp = Inc[i] + Dec[i];
}
}
System.out.println(N - temp + 1);//减去1是因为中间的那个数加了两次。
}
} }
合唱队
最新文章
- 【BZOJ-4726】Sabota? 树形DP
- JavaScript基础(一)之语法、变量、数据类型
- Linux 中 Nginx 重启关闭
- apache2.4配置访问日志分割并过滤图片CSS等无用内容
- yii + elasticsearch 手册
- Test Tex
- windows2003批量添加和导出所有ip
- C/C++程序基础
- mysql 1093 错误
- Google高级技巧—google Hack★★★★
- Gengxin讲STL系列目录
- Hadoop 2.x从零基础到挑战百万年薪第一季
- JavaScript DOM编程艺术-学习笔记(第五章、第六章)
- 【openstack N版】——块存储服务cinder
- cips2016+学习笔记︱简述常见的语言表示模型(词嵌入、句表示、篇章表示)
- 《深入理解 JVM 虚拟机》 --- 看书笔记
- BZOJ1000-1099板刷计划+一句话题解 73/100
- Git .gitignore文件简介及使用
- SQL Server将一列的多行内容拼接成一行
- HBase篇(2)-数据模型与操作
热门文章
- Yii 框架生成缩略图
- $(document).ready() 与 window.onload的区别
- 总结Ajax跨域调用问题
- C Primer Plus(第五版)1
- C++primer 练习13.36
- SQL 获取各表记录数的最快方法
- OS X open finder here in terminal
- TesCase-GUI(图形用户界面)测试
- 【caffe-windows】 caffe-master 之 mnist 超详细
- 视差贴图(Parallax Mapping)