C. Card Game

news2024/11/21 2:38:28

题目:样例:

输入
4
4
-4 1 -3 5
4
1 -2 3 -4
3
-1 3 -5
1
-1

输出
5
4
2
0

思路:

        这里的题意就是,

        当我们 i 取奇数的时候,可以获得该奇数 i 的值,并去掉当前卡牌。

        当我们 i 取偶数的时候,去掉当前卡牌。

        这里我们去掉当前卡牌后,后面的卡牌下标 i 就会变化,后面的 i 的奇偶性就会变化。

        所以当我们一个一个从后面开始取数的时候,就可以巧妙的避开这些变化,之后就是贪心操作。

代码详解如下:

#include <iostream>
#include <vector>
#include <unordered_set>
#include <unordered_map>
#define endl '\n'
#define int long long
#define YES puts("YES")
#define NO puts("NO")
#define umap unordered_map
#define uset unordered_set
#pragma GCC optimize(3,"Ofast","inline")
#define ___G std::ios::sync_with_stdio(false),cin.tie(0), cout.tie(0)
using namespace std;
const int N = 2e6 + 10;

inline void solve()
{	
	int n;
	cin >> n;

	umap<int,int>a;	// 存储卡牌数值

	for(int i = 1;i <= n;++i)
	{
		cin >> a[i];
	}

	// now 是取得的值多少
	int now = 0,ans = 0;

	// 开始贪心取值
	// 从后面开始取值,是因为当我们取一个 i 值后
	// 后面的 下标 i 就会变化,我们从后面 i 开始取值
	// 巧妙的避开这些变化
	for(int i = n;i > 0;--i)
	{
		// 当我们取得的 i 是偶数的时候
		if(i % 2 == 0)
		{
			// 更新我们的ans 
			ans = max(ans,now);
		}else
		{
			// 当我们取的 i 是奇数的时候,说明当前的 a[i] 也是可取的
			// 继续更新 ans
			ans = max(ans,a[i] + now);
		}
		
		// now 取值,我们只取 >= 0 更好的数值
		now += max(a[i],(int)0);
	}
	
	// 输出答案
	cout << ans << endl;
}

signed main()
{
//	freopen("a.txt", "r", stdin);
	___G;
	int _t = 1;
	cin >> _t;
	while (_t--)
	{
		solve();
	}
	return 0;
}

最后提交:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1046086.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

钢轨长度及允许偏差

声明 本文是学习GB-T 2585-2021 铁路用热轧钢轨. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了铁路用钢轨的订货内容、分类、尺寸、外形、质量及允许偏差、技术要求、试验方法、检 验规则、标志及质量证明书。 本标准适用于3…

【斯坦福cs324w】中译版 大模型学习笔记九 大模型之Adaptation

文章目录 引言Adaptation的必要性从llm的训练过程分析从下游任务和原始训练任务之间的差异分析 通用的Adaptation配置 当前主流的Adaptation方法ProbingFine-tuningLightweight Fine-tuningPrompt TuningPrefix TuningAdapter Tuning 参考资料 在特定领域的下游任务中&#xff…

【Git】轻松学会 Git(一):掌握 Git 的基本操作

文章目录 前言一、创建 Git 本地仓库1.1 什么是仓库1.2 创建本地仓库1.3 .git 目录结构 二、配置 Git三、认识 Git 的工作区、暂存区和版本库3.1 什么是 Git 的工作区、暂存区和版本库3.2 工作区、暂存区和版本库之间的关系 四、添加文件4.1 添加文件到暂存区和版本库中的命令4…

面试官:Redis基本命令有哪些,Redis怎么实现分布式锁?

哈喽&#xff01;大家好&#xff0c;我是奇哥&#xff0c;一位专门给面试官添堵的职业面试员 文章持续更新&#xff0c;可以微信搜索【小奇JAVA面试】第一时间阅读&#xff0c;回复【资料】更有我为大家准备的福利哟&#xff01; 文章目录 一、Redis基本数据类型与使用场景1、S…

IP地址定位的特点

IP地址定位是一种广泛应用于网络领域的技术&#xff0c;它允许我们确定特定设备或用户在互联网上的位置。这项技术在很多方面都具有重要的特点&#xff0c;本文将深入探讨这些特点。 1.全球性覆盖&#xff1a; IP地址定位IP66_ip归属地在线查询_免费ip查询_ip精准定位平台具有全…

macOS Sonoma 14 正式版(23A344)发布,附黑/白苹果镜像下载地址

系统介绍&#xff08;系统下载地址&#xff1a;http://www.imacosx.cn/115300.html&#xff09; 黑果魏叔9 月 27日消息&#xff0c;苹果今日向 Mac 电脑用户推送了 macOS Sonoma 14 正式版&#xff08;23A344&#xff09;。 macOS 14正式版系统发布&#xff1a;全新功能与改…

Linux:理解进程的多种状态

文章目录 理解状态运行状态阻塞状态挂起状态Linux系统下的进程状态的解析状态的查看 本篇总结的是进程的多种状态 对于进程的状态理解&#xff0c;在教材上通常是有下面的思维模式图 那么如何理解上面图片中的内容&#xff1f; 理解状态 如何理解状态&#xff1f;其实理解状…

什么是HTTP头部(HTTP headers)?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 理解 HTTP 头部&#xff08;HTTP Headers&#xff09;⭐ HTTP 头部的分类⭐ HTTP 头部的应用⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#x…

基于Python Django的公务员考试信息管理系统

文章目录 1 简介2. 技术栈3 功能分析4 功能具体设计4.1 软件功能模块设计4.2数据库设计与实现4.2.1概念模型设计4.2.2数据库逻辑结构设计 5系统详细设计5.1系统功能模块5.2管理员功能模块 六 源码咨询 1 简介 公务员考试信息管理系统的开发运用Python技术&#xff0c;MIS的总体…

8月数据出炉!NOA与激光雷达「分道扬镳」?降本大战升级

对于激光雷达赛道来说&#xff0c;如何在市场整体需求更加偏向强调性价比的背景下&#xff0c;继续维持前装出货的增速&#xff0c;已经成为新的考验。 进入2023年&#xff0c;高阶智驾&#xff08;中国市场以NOA为代表&#xff09;&#xff0c;继续保持向上势头。8月&#xff…

Archlinux Timeshift的系统备份与还原

服务器在滚挂或误删系统文件,timeshift系统备份与还原的情景: 安装 timeshif 1 yay -s timeshif 备份设置 选择快照类型 此处选择【RSYNC】 选择储存位置 每台设备安装分区不一样,大家安装实际情况选择,一般选择比较大的空间存储,并且最好是机械,这样不容易损坏 设置计…

实战项目:VB实现小鸟快跑小游戏

文章目录&#xff1a; 一&#xff1a;效果演示 二&#xff1a;实现思路 三&#xff1a;代码实现 form1 效果图 代码 form2 效果图 代码 一&#xff1a;效果演示 效果图◕‿◕✌✌✌ 代码下载 二&#xff1a;实现思路 窗口1 就是实现窗口的跳转和关闭窗口2 1.先添加背…

【接口测试】Chrome浏览器F12调试工具抓包详细分析(超细)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 调试时使用最多的…

Docker网络+资源控制

一、Docker网络 Docker 网络实现原理 Docker使用Linux桥接&#xff0c;在宿主机虚拟一个Docker容器网桥(docker0)&#xff0c;Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址&#xff0c;称为Container-IP&#xff0c;同时Docker网桥是每个容器的默认网关。…

【计算机网络】IP数据报首部格式、最大传输单元MTU、最大分段大小MSS

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 更多计算机网络知识专栏&#xff1a;计算机网络&#x1f525; 给大家跳段…

【生育险报销】

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

计算机视觉与深度学习-图像分割-视觉识别任务03-实例分割-【北邮鲁鹏】

目录 参考定义Mark R-CNN结构思路Mask R-CNN训练阶段使用的Mask样例Mask R-CNN实例分割结果Mask R-CNN检测姿态 参考 论文题目&#xff1a;Mask R-CNN 论文链接&#xff1a;论文下载 论文代码&#xff1a;Facebook代码链接&#xff1b;Tensorflow版本代码链接&#xff1b; K…

51单片机3【单片机的种类】

1.51单片机发展史 1. 发展史 &#xff08;1&#xff09;总结&#xff1a;早期是不分单片机和其他CPU的&#xff0c;早期都是一起的&#xff0c;后来应用级别的高端CPU相继推出用于别的行业&#xff08;PC&#xff0c;手机&#xff09;其中一支专用与低性能&#xff0c;低价格作…

Java基础简单整理

文章目录 Java语言具有以下特点&#xff1a;Java SE vs Java EEJVM vs JDK vs JRE为什么说 Java 语言编译与解释并存&#xff1f;Java 和 C 的区别?Java注释用法&#xff1a;Java标识符Java基本数据类型链接Java字符串类型链接基本类型和包装类型的区别&#xff1f;静态方法为…

Unity实现设计模式——观察者模式

Unity实现设计模式——观察者模式 观察者设计模式定义了对象间的一种一对多的组合关系&#xff0c;以便一个对象的状态发生变化时&#xff0c;所有依赖于它的对象都得到通知并自动刷新。 简单来说就是某个人需要收到通知只需要订阅这个通知&#xff0c;当通知发送时会发送到每…