大盗阿福

大盗阿福

总时间限制: 1000ms 内存限制: 65536kB
描述

阿福是一名经验丰富的大盗。趁着月黑风高,阿福打算今晚洗劫一条街上的店铺。

这条街上一共有 N 家店铺,每家店中都有一些现金。阿福事先调查得知,只有当他同时洗劫了两家相邻的店铺时,街上的报警系统才会启动,然后警察就会蜂拥而至。

作为一向谨慎作案的大盗,阿福不愿意冒着被警察追捕的风险行窃。他想知道,在不惊动警察的情况下,他今晚最多可以得到多少现金?

输入
输入的第一行是一个整数 T (T <= 50) ,表示一共有 T 组数据。
接下来的每组数据,第一行是一个整数 N (1 <= N <= 100, 000) ,表示一共有 N 家店铺。第二行是 N 个被空格分开的正整数,表示每一家店铺中的现金数量。每家店铺中的现金数量均不超过 1000 。
输出
对于每组数据,输出一行。该行包含一个整数,表示阿福在不惊动警察的情况下可以得到的现金数量。
样例输入
2
3
1 8 2
4
10 7 6 14
样例输出
8
24
提示
对于第一组样例,阿福选择第 2 家店铺行窃,获得的现金数量为 8 。
对于第二组样例,阿福选择第 1 和 4 家店铺行窃,获得的现金数量为 10 + 14 = 24 。

题解:来源

状态表达:f[i] = 在前i家店中最多能盗到的钱数。 
转移方程:f[i] = max(f[i-1],f[i-2]+val[i]) 
状态数量:n 
转移代价:O(1) 
时间复杂度:O(n) 
空间复杂度:O(n)或O(1) 
上面的空间复杂度可以是O(1)是因为可以把当前状态只需要f[i-1],f[i-2],这样就只要定义一个变量,不需要开数组了。

 1 #include<cstdio>
 2 int num[100001],f[100001];
 3 int main()
 4 {
 5     int t,i,n;
 6
 7     scanf("%d",&t);
 8     while(t>0)
 9     {
10         t--;
11         scanf("%d",&n);
12         for(i=0;i<n;i++)scanf("%d",&num[i]);
13         f[0]=num[0],f[1]=(num[0]>num[1]?num[0]:num[1]);
14         for(i=2;i<n;i++)f[i]=( f[i-1]>f[i-2]+num[i]  ?  f[i-1]  :  f[i-2]+num[i] );
15         printf("%d\n",f[n-1]);
16     }
17     return 0;
18 } 
时间: 2024-07-28 15:33:41

大盗阿福的相关文章

大盗阿福(动规)

8462:大盗阿福 总时间限制:  1000ms 内存限制:  65536kB 描述 阿福是一名经验丰富的大盗.趁着月黑风高,阿福打算今晚洗劫一条街上的店铺. 这条街上一共有 N 家店铺,每家店中都有一些现金.阿福事先调查得知,只有当他同时洗劫了两家相邻的店铺时,街上的报警系统才会启动,然后警察就会蜂拥而至. 作为一向谨慎作案的大盗,阿福不愿意冒着被警察追捕的风险行窃.他想知道,在不惊动警察的情况下,他今晚最多可以得到多少现金? 输入 输入的第一行是一个整数 T (T <= 50) ,表示一共有

001:大盗阿福

001:大盗阿福 题目链接:http://cxsjsxmooc.openjudge.cn/2017t2summerfinal/001/ 总时间限制: 1000ms 内存限制: 65536kB 描述 阿福是一名经验丰富的大盗.趁着月黑风高,阿福打算今晚洗劫一条街上的店铺. 这条街上一共有 N 家店铺,每家店中都有一些现金.阿福事先调查得知,只有当他同时洗劫了两家相邻的店铺时,街上的报警系统才会启动,然后警察就会蜂拥而至. 作为一向谨慎作案的大盗,阿福不愿意冒着被警察追捕的风险行窃.他想知道,在不惊

NOI-Openjudge-8462-大盗阿福

8462:大盗阿福 总时间限制: 1000ms 内存限制: 65536kB 描述 阿福是一名经验丰富的大盗.趁着月黑风高,阿福打算今晚洗劫一条街上的店铺. 这条街上一共有 N 家店铺,每家店中都有一些现金.阿福事先调查得知,只有当他同时洗劫了两家相邻的店铺时,街上的报警系统才会启动,然后警察就会蜂拥而至. 作为一向谨慎作案的大盗,阿福不愿意冒着被警察追捕的风险行窃.他想知道,在不惊动警察的情况下,他今晚最多可以得到多少现金? 输入 输入的第一行是一个整数 T (T <= 50) ,表示一共有 T

状态机模型

1049. 大盗阿福 阿福是一名经验丰富的大盗.趁着月黑风高,阿福打算今晚洗劫一条街上的店铺. 这条街上一共有 N 家店铺,每家店中都有一些现金. 阿福事先调查得知,只有当他同时洗劫了两家相邻的店铺时,街上的报警系统才会启动,然后警察就会蜂拥而至. 作为一向谨慎作案的大盗,阿福不愿意冒着被警察追捕的风险行窃. 他想知道,在不惊动警察的情况下,他今晚最多可以得到多少现金? 输入格式 输入的第一行是一个整数 T,表示一共有 T 组数据. 接下来的每组数据,第一行是一个整数 N ,表示一共有 N 家店

微信支付大盗--黑色产业链

随着移动互联网的迅速兴起,手机移动支付呈现井喷式发展.然而移动支付在便利人们生活的同一时候,也面临着越来越多的风险.据百度安全实验室监控数据显示,众多官方的手机网银client和支付工具都被黑客克隆成山寨版本号,这些山寨移动支付应用总量超过500款.山寨手机支付应用已成为移动支付最大安全风险之中的一个,严重威胁着用户资金財产安全. 日前,实验室又截获了一款名为"微信支付大盗"的手机支付木马,该木马高度模仿真正的"微信",诱骗用户激活设备管理器,通过钓鱼方式获取用户输

阿里巴巴与27个“大盗”“偷”来的制度创新

马云的合伙人制完全抛弃了股权的枷锁,和双重股权结构有着本质区别. 阿里就要上市了,投资者们会喜欢这个大胆的制度创新吗? 财新记者 南皓 6月16日,随着阿里巴巴招股书第一次更新版发布,坊间对阿里赴美上市的热议有如曼哈顿河上的白浪头般再起高潮,而这千层浪花的奔涌所向,正是不久前直接导致阿里港交所上市受挫的合伙人制度. 合伙人制度的核心特点是可以通过公司章程及其附属控制协议设计,使得合伙人能够在企业中获得远远高于其所持股份比例的控制权. 不过此合伙人制未必是彼合伙人制,阿里巴巴的合伙人制隐藏着对百年

美国的大盗之道

美国是世界的经济大盗 引用普京的话: 美国是世界经济的 吸血虫 .但究竟吸了多少,是象蚊子那样,还是象趴在水牛背上 用血盆大口舔舐的非洲狮子那样?细究出来,即使你不会当场气绝身亡,也一定会瞠目结舌.下图是美国近年来的贸易数据: 时间 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 贸易差额 2254 -1302 -5443 1900 -4293 12404 -6082 -27246 -29763 -24565 时间 1980 1981 1982

cdoj 1253 阿里巴巴和n个大盗 博弈论

阿里巴巴和n个大盗 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1253 Description 阿里巴巴和n个大盗来到了一个藏满宝石的洞穴.洞里一共有m颗价值连城的宝石,每一颗都等价.盗亦有道,为了奖励帮忙打开洞穴门的阿里巴巴,大盗们决定让他一起加入分赃.大盗们决定采用一种方式分赃,分赃的方式如下: 1)每个人由抽签决定了自己的号码(1, 2, 3, ?, n+1). 2

警惕最新安卓系统病毒&quot;微信大盗&quot;监听手机

国庆小长假刚刚结束,将自己出游的所见所闻发上微信,这是许多人的习惯.不过,近日出现了一个名为"微信大盗"的手机病毒,专门针对微信用户,危害极高.不法分子就是利用假期时人们放松警惕与特殊消费习惯行骗.该病毒基于Android系统,将自身伪装后引诱网民下载安装.手机一旦中毒,用户不但将面临隐私信息泄露等风险,还会遭到黑客的定向监听和定位跟踪,进而可能危及人身安全. "微信大盗"将自己伪装成手机安全管家来引诱网民下载,病毒一旦运行,将立刻删除自己的桌面图标,企图"