1 条题解
-
0
C++ :
#include<bits/stdc++.h> using namespace std; int a[30001],n,c; //拦截的当前导弹的编号,拦截的数量,当前的高度 void dp(int i,int num,int h){ if(i>n) return; //比较出最大值 c = max(c,num); //向后递归 for(int k=i+1;k<=n;k++){ //如果高度 >= 当前导弹高度,则递归 if( h >= a[k]){ dp(k,num+1,a[k]); }else{ dp(k,num,h); } } } int main(){ int i; cin>>n; for(i=1;i<=n;i++){ cin>>a[i]; } //每个导弹都可能成为第一枚 for(i=1;i<=n;i++){ dp(i,1,a[i]); } cout<<c; return 0; }
- 1
信息
- ID
- 2646
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者