This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
#include <bits/stdc++.h>
using namespace std;
const int N = 1010;
int a[N];
int n;
//最大值
int Max;
/**
测试用例:
3
130 200 55
最多投进球的个数
答案:2
*/
* 功能:深度优先搜索
* @param step 选择了哪个篮筐
* @param last 前面最后一个数字是多少
* @param cnt 已经投中了多少个球
void dfs(int u, int last, int cnt) {
//如果越界
if (u == n + 1) {
//更新最大长度
Max = max(Max, cnt);
return;
}
//如果可以选择当前篮筐,并且选择了当前篮筐
if (a[u] < last)
dfs(u + 1, a[u], cnt + 1);
//放弃当前篮筐
dfs(u + 1, last, cnt);
int main() {
//输入
cin >> n;
for (int i = 1; i <= n; i++) cin >> a[i];
//深度优先
dfs(1, INT_MAX, 0);
//输出最大值
cout << Max << endl;
return 0;