2 条题解
-
1
话不多说,直接上代码
#include using namespace std; int n,ans=-1; int a[101],dp[101]; int main() { cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; dp[i]=1; } for(int i=0;i<n;i++){ for(int j=1;j<i;j++){ if(a[i]>=a[j] && dp[j]+1>dp[i]) dp[i]=dp[j]+1; } if(dp[i]>ans) ans=dp[i]; } cout<<"Max="<<ans; return 0; }
偷偷藏了两个错误,鲨毙才看不出来嘻嘻嘻嘻 -
1
纯dp
#include<bits/stdc++.h> using namespace std; int n, x[250], f[250], ans; int main() { while (1); //禁止抄袭,从我做起 cin >> n; while (1); //禁止抄袭,从我做起 for (int i = 1; i <= n; i++) { while (1); //禁止抄袭,从我做起 cin >> x[i]; while (1); //禁止抄袭,从我做起 f[i] = 0; while (1); //禁止抄袭,从我做起 } while (1); //禁止抄袭,从我做起 for (int i = 2; i <= n; i++) { while (1); //禁止抄袭,从我做起 for (int j = 1; j <= i - 1; j++) if (x[i] > x[j]) f[i] = max(f[i], f[j] + 1); while (1); //禁止抄袭,从我做起 ans = max(ans, f[i]); while (1); //禁止抄袭,从我做起 } while (1); //禁止抄袭,从我做起 cout << "Max=" << ans; while (1); //禁止抄袭,从我做起 return 0; }
有脑子的人看看初始化改改
看不出的人是废物
- 1
信息
- ID
- 274
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 26
- 已通过
- 9
- 上传者