[AcWing 1049] 大盗阿福

image
image


点击查看代码
#include<iostream>

using namespace std;

const int N = 100010;
const int INF = 0x3f3f3f3f;

int n, w;
int f[N][2];

int main()
{
	int T;
	cin >> T;
	while (T --) {
		cin >> n;
		f[0][0] = 0, f[0][1] = -INF;
		for (int i = 1; i <= n; i ++) {
			scanf("%d", &w);
			f[i][0] = max(f[i - 1][0], f[i - 1][1]);
			f[i][1] = f[i - 1][0] + w;
		}
		cout << max(f[n][0], f[n][1]) << endl;
	}
	return 0;
}

  1. 状态表示
    f[i][j] 表示所有走了 i 步,且当前位于状态 j 的所有走法的最大值
  2. 状态计算
    f[i][0]=max(f[i1][0],f[i1][1])
    f[i][1]=f[i1][0]+w[i]
  3. 状态机模型
    image
posted @   wKingYu  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
欢迎阅读『[AcWing 1049] 大盗阿福』
点击右上角即可分享
微信分享提示