AcWing 1049,别再说自己不会JVM虚拟机了

1≤N≤105

输入样例:

2

3

1 8 2

4

10 7 6 14

输出样例:

8

24

样例解释

对于第一组样例,阿福选择第2家店铺行窃,获得的现金数量为8。

对于第二组样例,阿福选择第1和4家店铺行窃,获得的现金数量为10+14=24。

2.思路

在这里插入图片描述

在这里插入图片描述

状态表示:

我们设f[i][1]表示选择当前商铺i的最优值,同理f[i][0]表示不选择当前商铺i的最优值。

对于f[i][0]:

不抢第 i 个店铺可以由不抢第i-1个商店,或者抢第i-1个商店转移过来。

转移方程为:

f[i][0]=max(f[i-1][0],f[i-1][1])

对于f[i][1]:

由于不能抢相邻的,所以抢第i个店铺时一定不能抢第i−1个店铺,因此抢劫第i个商店只能从不抢第i-1个店转移过来。

f[i][1]=f[i-1][0]+w[i]

3.代码


/*

状态机模型

*/

#include<iostream>

#include<cstdio>

#include<algorithm>

using namespace std;

const int N=1e5+10,INF=1e9;

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

int main()

{

    int T;

    scanf("%d",&T);

    while(T--)

    {

        int n;

        scanf("%d",&n);

        f[0][0]=0,f[0][1]=-INF;  //初始化

        for(int i=1;i<=n;i++) scanf("%d",&w[i]);

        for(int i=1;i<=n;i++)

        {



# **结尾**

![查漏补缺:Java岗 千+道面试题Java基础+全家桶+容器+反射+异常等](https://img-blog.csdnimg.cn/img_convert/80b15114d22cbd03a1942f2533df85f7.png)

这不止是一份面试清单,更是一种”被期望的责任“,因为有无数个待面试者,希望从这篇文章中,找出通往期望公司的”钥匙“,所以上面每道选题都是结合我自身的经验于千万个面试题中经过艰辛的两周,一个题一个题筛选出来再次对好答案和格式做出来的,面试的答案也是再三斟酌,深怕误人子弟是小,影响他人仕途才是大过,也希望您能把这篇文章分享给更多的朋友,让他帮助更多的人,帮助他人,快乐自己,最后,感谢您的阅读。

**[资料领取方式:戳这里免费获取](https://codechina.csdn.net/m0_60958482/java-p7)**

把这篇文章分享给更多的朋友,让他帮助更多的人,帮助他人,快乐自己,最后,感谢您的阅读。

**[资料领取方式:戳这里免费获取](https://codechina.csdn.net/m0_60958482/java-p7)**

**由于细节内容实在太多啦,在这里我花了两周的时间把这些答案整理成一份文档了,在这里只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!**
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值