icpc:problems:luogup2800
problems | |
---|---|
名称 | 又上锁妖塔 |
题目编号 | P2800 |
题目链接 | luogu.com.cn/… |
来源 | Luogu |
算法分类 | 动态规划, 线性动态规划 |
难易程度 | 容易 |
又上锁妖塔
想法
修改状态,增加记录到第i层是否使用,用魔法到之前不能用魔法。
代码实现
#include<cstdio> #include<algorithm> using namespace std; const int N = 1e6+10; int f[N][2], h[N]; int main() { int n; scanf("%d", &n); for(int i=1; i<=n; i++) scanf("%d", &h[i]); f[1][0] = h[1]; // [0] 表示不用魔法到第i层,[1]表示用魔法到第i层。 for(int i=2; i<=n; i++) { f[i][0] = min(f[i-1][1], f[i-1][0]) + h[i]; f[i][1] = min(f[i-1][0], f[i-2][0]); } printf("%d", min(f[n][0], f[n][1])); return 0; }
/app/www/public/data/pages/icpc/problems/luogup2800.txt · 最后更改: 2024/03/21 09:25 由 温婕莺