MOOC 拦截导弹(动规基础)

来源:互联网 发布:cdma无线网络优化流程 编辑:程序博客网 时间:2024/05/21 04:18

题目链接在此,拿需


思路:基础动规题目,主要就是看出状态转移方程,然而,本水笔还是写不出动规程序,先写了个递归压压惊。感觉还是要拓展思路,总是想着dp[][]把自己往死里逼。。。不懂自己怎么回事。


递归中出现的错误是,把max_num置为0了,至少为1。

代码如下:

#include<iostream> int numbers[30][30]={0};int height[30] ={0};using namespace std;int solves(int start,int k);inline int mymax(int a,int b){return a>b?a:b;};int main(void){int k,max_num = 0;cin>>k;for(int i=0;i<k;i++){cin>>height[i];}for(int j = 0;j<k;j++){max_num=mymax(max_num,solves(j,k));}cout<<max_num<<endl;return 0;} int solves(int start,int k){int max_num = 1;if(start==(k-1)){return 1;}for(int j = start+1;j<k;j++){if(height[start]>=height[j]){ max_num=mymax(max_num,1+solves(j,k));}}return max_num;}
至于动规程序,引自:点击打开链接。

其中给出更详细的思路,与解答,并附上了最优代码(我绝不承认我看不懂)。

0 0