online_judge_1131
2015-12-21 18:11
274 查看
#include <iostream> #include <algorithm> #include <cstdio> using namespace std; int main() { int n,i,j,t; int dp1[101],dp2[101]; //int dp3[101]; int a[101],ans; //int b[101]; while(scanf("%d",&n) != EOF) { for(i=1; i<=n; ++i) scanf("%d",&a[i]); for(i=1; i<=n; ++i) { dp1[i] = 1; dp2[i] = 1; } for(i=2; i<=n; ++i) { for(j=1; j<i; ++j) { if(a[i] > a[j]) dp1[i] = max(dp1[i], dp1[j]+1); } } for(i=n-1; i>=1; --i) { for(j=n; j>i; --j) { if(a[i] > a[j]) dp2[i] = max(dp2[i], dp2[j]+1); } } ans = 101; /*t = 0; dp3 = 0; b = 0; for(i=n-1; i>=1; --i) { if(t < dp2[i+1]) { t = dp2[i+1]; dp3[i] = t; b[i] = i+1; } }*/ for(i=1; i<=n; ++i) { t = 0; for(j=i+1; j<=n; ++j) { if(dp2[j] > t && a[j] != a[i]) { t = dp2[j]; } } ans = min(ans, n-dp1[i]-t); } printf("%d\n",ans); } return 0; }
这个题目要注意的细节还是很多的……做了好久。。
最后,一定要记住,输入输出尽量用C语言的标准,C++的会慢很多。之前用cout、cin就是超时。改用scanf和printf就好了……
相关文章推荐
- Screwturn搭建企业内部wiki
- jquery 学习笔记 (2)--write less,do more
- cacti的目录迁移发现的问题
- maven and dubbo
- APPStore 发布 专辑
- python的文件操作和目录操作
- android 解决fragment+viewpager+fragment滑动卡顿的问题
- Android Studio自定义gradle下载路径
- 让机器人模块 PyAIML 平滑处理中文
- Log4Net日志配置
- [经典算法]基数排序
- C++ 程序 附加 进程调试 方法 本文基于VS2010为例, 其他版本的编译器也可以
- online_judge_1130
- Android Activity通过Intent传递数据
- Metasploit 笔记
- Package has no installation candidate解决方法
- 指针常量和常量指针
- UCOS移植LWIP
- Linux C 函数指针应用---回调函数
- ACboy needs your help again!(杭电1702)(栈和队列的基础应用)