7 条题解
-
1
这题解呢啊,本来是要前几个星期前就写的,但是因为某些原因,推迟了。
好,接下来进入正题
这题的确啊,就是DP
定义表示阿福打劫到第个店时的最大金额
好,我们直接看状转:
因为必须要至少隔开一个店铺所以呢状转就得写成这样。
好,最后再来设置一下边界 就完成了
附上
#include<bits/stdc++.h> using namespace std; long long dp[100005]; int main() { long long t,n; cin>>t; for(long long p=0;p<t;p++) { memset(dp,0,sizeof(dp)); cin>>n; long long a[n+1]; long long o; for(long long i=1;i<=n;i++) { cin>>a[i]; } dp[1]=a[1]; for(long long i=2;i<=n;i++) { dp[i]=max(dp[i-1],dp[i-2]+a[i]); } cout<<dp[n]<<endl; } }
$\LaTeX$666
信息
- ID
- 2800
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- 递交数
- 366
- 已通过
- 112
- 上传者