导弹拦截<DP><贪心><C++>
2015-11-02 22:00
453 查看
程序
[code]#include<cstdio> #include<cstring> using namespace std; int main(){ int i=-1,a[1001],f[1000],max,min,tot=0; memset(f,0,sizeof(f)); while(scanf("%d",&a[++i])==1){ max=f[i]; for(int j=i;j>=0;j--) if(f[j]>max&&a[j]>a[i]) max=f[j]; f[i]=max+1; } max=0; for(int j=0;j<=i-1;j++) if(f[j]>max) max=f[j]; printf("%d\n",max); memset(f,0,sizeof(f)); a[1000]=0xfffffff; for(int j=0;j<=i-1;j++){ min=1000; for(int k=0;k<j;k++) if(a[k]>a[j]&&a[k]<a[min]&&f[k]==0) min=k; f[min]=j; } for(int j=0;j<=i-1;j++) if(f[j]==0) tot++; printf("%d",tot); return 0; }
相关文章推荐
- c++11特性之std::thread--初识
- c++11特性之std::thread--初识
- c++栈和队列
- 编码问题:unicode与utf-8,wchar_t与char
- 【LeetCode从零单刷】Remove Duplicates from Sorted Array I & II
- xerces C/C++ 读取XML文件
- malloc、calloc、realloc的区别
- c++中的引用和指针
- PHP怎么与C语言通信
- 【LeetCode从零单刷】House Robber
- 求排列的逆序数<归并><C++>
- C/C++高阶语法:函数指针及其应用
- 遇见gtest--事件
- C/C++中的内存补齐机制(2)
- C++学习——构造函数初始化列表
- iOS 开发 c语言阶段考试题
- C++实现单链表逆置
- C++学习——copy构造函数及浅拷贝和深拷贝
- c++ string类详解
- 爬爬爬之路:OC语言(六) Block语法简介