1 条题解
-
0
简单
#include<bits/stdc++.h> using namespace std; (不提供快读) void write(int x) { if(x<0){ putchar('-'); write(-x); return; } if(x>=10)write(x/10); putchar(x%10+'0'); } int n,i,a[1000005],dp[1000005]; int main() { n=read(); for(i=1;i<=n;i++) { a[i]=read(),dp[i]=1e9; } dp[1]=a[1]; dp[2]=a[2]; dp[3]=a[3];//前三位 for(i=4;i<=n+1;i++) { dp[i]=min(dp[i-1],min(dp[i-2],dp[i-3]))+a[i];//从前面找较小值 } write(dp[n+1]); return 0; }
- 1
信息
- ID
- 237
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- (无)
- 递交数
- 105
- 已通过
- 63
- 上传者