解:
2026-04-18 12:34:00
发布于:广东
0阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
vector<int>dp(n+1,0);
dp[1]=1;
for(int i=2;i<=n;i++){
dp[i]=1;
for(int j=1;j<=i/2;j++){
dp[i]+=dp[j];
}
}
cout<<dp[n]<<endl;
return 0;
}
通过双重循环累加所有满足条件(不超过当前数一半)的子数列个数,最终输出dp[n]。
这里空空如也






有帮助,赞一个