竞赛
考级
本题采用动态规划 。 数据储存,设定数组a[]用于存储数字序列 ,设定dp[]数组用于统计上升的序列个数; 遍历组数a[],在遍历的过程中如果出现了数字上升的情况,就使用动态规划累计当前的最优解; 动态转移方程为 ,dp[i] = max(dp[i],dp[j]+1); 最后,遍历数组dp[] , 找出dp[]数组中的最大值。
AC君
续
按照老师的方法老老实实做
复仇者_帅童
PE君
三个字: 太水了!!! #include<bits/stdc++.h> using namespace std; int n,a[2000],dp[2000],maxx; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } dp[1]=1; for(int i=2;i<=n;i++){ dp[i]=1; for(int j=i-1;j>=1;j--){ if(a[j]<a[i]){ dp[i]=max(dp[i],dp[j]+1); } } maxx=max(maxx,dp[i]); } cout<<maxx; return 0; }
梁轶钦Chris
飞的智动
导弹拦截代码改一下就行
枫岚
我是唯一一个用PYthon写出来的吗? n = input() x = 0 max = 0 list_thing = input().strip().split(" ") list_run = [] list_in = [] dict_run = {} score = 0 run_max = 0 for i in range(len(list_thing)): list_thing[i] = int(list_thing[i]) for i in range(len(list_thing)): score = 0 run_max = 0 if i == 0: score = 1 else: for a in range(i): if dict_run[a] > run_max and list_thing[a] < list_thing[i]: run_max = dict_run[a] score = run_max + 1 dict_run[i] = score for i in dict_run.values(): if i > max: max = i print(max)
文鸿铭
LS_YZY
yh26zhuenaf
提交答案之后,这里将显示提交结果~