题目1131:合唱队形
2017-01-24 17:17
260 查看
#include<stdio.h> int height[100]; int ans1[100]; //表示从左到右的最长递增子序列 int ans2[100]; //表示从左到右的最长递减子序列 int ans[100]; int getMax(int a, int b) { return a > b ? a : b; } //正反两次使用LIS int main() { int n; while (scanf("%d", &n) != EOF) { for (int i = 0; i < n; i++) { scanf("%d", &height[i]); ans1[i] = 1; ans2[i] = 1; ans[i] = 1; } for (int i = 0; i < n; i++) { int max = 1; for (int j = 0; j < i; j++) { if (height[j] < height[i]) max = getMax(max, ans1[j] + 1); } ans1[i] = max; } for (int i = n - 1; i >= 0; i--) { int max = 1; for (int j = n - 1; j > i; j--) { if (height[j] < height[i]) max = getMax(max, ans2[j] + 1); } ans2[i] = max; } for (int i = 0; i < n; i++) { ans[i] = n - ans1[i] - ans2[i] + 1; } int min = 0x7fffffff; for (int i = 0; i < n; i++) { if (ans[i] < min) min = ans[i]; } printf("%d\n", min); } return 0; }
题目链接:
http://ac.jobdu.com/problem.php?pid=1131
相关文章推荐
- 题目1131:合唱队形
- 九度OJ 题目1131:合唱队形
- 【最长降序子序列+双向】九度OJ 题目1131:合唱队形
- 九度题目1131:合唱队形
- 题目1131:合唱队形(最长递增子序列进阶)
- 题目1131:合唱队形
- 九度 oj 题目1131:合唱队形
- 题目1131:合唱队形
- 题目1131:合唱队形
- 题目1131:合唱队形
- 九度OJ-1131:合唱队形(最长递增子序列)
- ♥九度Online Judge 1131-合唱队形【LIS】
- 九度 1131 合唱队形
- 九度OJ 1131 合唱队形
- 1131_合唱队形
- 九度OJ 1131 合唱队形 (动态规划DP)
- 九度1131_合唱队形【LIS】【LCS】
- 九度OJ-1131-合唱队形
- Jobdu1131 合唱队形(DP,LIS)
- 九度OJ 1131:合唱队形 (DP、最长上升下降序列)