CodeForces..构建美丽数组.[简单].[情况判断].[特殊条件下的最小值奇偶问题]

news2024/11/29 2:45:24

题目描述:


题目解读:

给定数组a[n],ai>0,问能否得到一个数组b[n],数组b中的元素都大于0且全奇or全偶。

数组b中的元素bi=ai or ai-aj(1<j<n)。


解题思路:

数组b中的元素都大于0且全奇or全偶。分析所有情况:

如果a[n]全为偶或全为奇,则b[n]全偶或全奇,必然满足要求;

如果a[n]奇偶都有,想实现b[n]全偶或全奇,必然需要使用bi=ai-aj运算,

对于减法: 奇-偶=奇;奇-奇=偶;偶-偶=偶;偶-奇=奇;

对于值比较大的元素,可以自由选择减去奇数还是偶数(而且减去后还大于0),来实现最终的全奇全偶;唯一需要重点考虑的是最小元素的奇偶性,因为题目要求每个元素需要大于0,故最小元素无法通过减法运算改变奇偶性。

如果最小值是奇数,那其他偶数-奇数,都可变为奇数,即使是最小偶数也可以减最小奇数来变为奇数,故可以满足要求;

如果最小值为偶数,其他奇数-偶数,还是奇数,无法变偶;奇数-奇数可以变偶数,但是最小奇数没有奇数给它减,所以无法满足要求。

综上所述,返回NO的唯一条件是,数组元素奇偶都有,且最小值为偶数。


代码实现:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#define MAX 200000 //注意题目中要求的变量取值范围
#include<iostream>
using namespace std;

void Solve() {

	int n,i=0;
	int num[MAX];
	int flgodd = 0,flgeven=0;
	int minnum = 1e9;
	scanf("%d", &n);

	for (i = 0; i < n; i++) {
		scanf("%d", &num[i]);
		if (num[i] % 2 == 1) { //奇数
			flgodd = 1;
			minnum = min(num[i], minnum);
		}
		else { //偶数
			flgeven = 1;
			minnum = min(num[i], minnum);
		}	
    }

	if (flgodd == 1&& flgeven == 1) {
		if (minnum % 2 == 0) {
			printf("NO\n");
		}else printf("YES\n");
	}
	else printf("YES\n");


	return;
}

int main() {
	int t;
	scanf("%d", &t);
	while (t--) Solve();
	return 0;
}

遇到的错误:全奇全偶的判断使用两个flg标记来实现,应该有更简单的办法。

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

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

相关文章

IDEA代码替换

IDEA代码替换 快捷键 当前文件内容 C t r l R CtrlR CtrlR 全局替换 C t r l S h i f t R CtrlShiftR CtrlShiftR 使用 第一行输入栏&#xff1a;输入被替换内容 第二行输入栏&#xff1a;输入替换内容 详细使用 第一行输入栏后第一个图标&#xff1a;换行 第一行输…

数论专题(3)逆元

目录 初步认识 逆元 定义 应用 费马小定理 好久没有更新我们的数论专题板块了&#xff0c;今天&#xff0c;我们就来探究一下新知——逆元。 初步认识 在数据非常大的情景下&#xff0c;我们通常会对数据先进行取模运算&#xff0c;来计算在一定的范围内进行处理。而运算…

SpringBoot启动扩展应用:干预优化+加快启动时间

目录 一、SpringBoot启动配置原理简述 二、SpringBoot启动过程干预 &#xff08;一&#xff09;ApplicationContextInitializer扩展 修改Spring Boot默认的environment属性 添加自定义的PropertySource 注册自定义bean &#xff08;二&#xff09;SpringApplicationRunL…

【计算思维题】少儿编程 蓝桥杯青少组计算思维真题及详细解析第6套

少儿编程 蓝桥杯青少组计算思维真题及详细解析第6套 1、兰兰有一些数字卡片,从 1 到 100 的数字都有,她拿出几张数字卡片按照一定顺序摆放。想一想,第 5 张卡片应该是 A、11 B、12 C、13 D、14 答案:C 考点分析:主要考查小朋友们的观察能力和数学推理能力,从给定的图…

[Nacos] Nacos Server处理心跳请求 (八)

文章目录 1.InstanceController#beat()1.1 serviceManager.registerInstance()1.2 serviceManager.getService()1.3 处理本次心跳 1.InstanceController#beat() CanDistroPutMapping("/beat")Secured(parser NamingResourceParser.class, action ActionTypes.WRITE…

面了个字节出来的00后,我见识到了什么叫“自动化测试+性能测试”

前两天看到字节一个老哥写的帖子&#xff0c;提到高阶测试工程师必须掌握的技能&#xff0c;其中他明确提出了“精通性能测试”。 为啥性能测试对测试工程师如此重要&#xff1f; 性能测试是指在特定的负载情况下&#xff0c;测试目标系统的响应时间、吞吐量、并发用户数、资源…

Eclipse 教程Ⅳ

Eclipse 工作空间(Workspace) eclipse 工作空间包含以下资源&#xff1a; 项目文件文件夹 项目启动时一般可以设置工作空间&#xff0c;你可以将其设置为默认工作空间&#xff0c;下次启动后无需再配置&#xff1a; 工作空间(Workspace)有明显的层次结构。 项目在最顶级&…

HTML 教程1

HTML文档的后缀名 .html.htm 以上两种后缀名没有区别&#xff0c;都可以使用。 HTML 实例 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>菜鸟教程(runoob.com)</title> </head> <body><h1&g…

QTableWidget加载大文件数据

由于最近在项目中需要加载几GB的文件&#xff0c;并且需要在QTableWidget中进行显示&#xff1b;粗略估计可能得有几千万行&#xff0c;如果使用常规的方法&#xff0c;直接在QTableWidget中进行全部显示&#xff0c;会比较卡。所以查找相关资料&#xff0c;最终想到了一个比较…

算法基础学习笔记——⑧堆\哈希表

✨博主&#xff1a;命运之光 ✨专栏&#xff1a;算法基础学习 目录 ✨堆 &#x1f353;堆模板&#xff1a; ✨哈希表 &#x1f353;一般哈希模板&#xff1a; &#x1f353;字符串哈希模板&#xff1a; 前言&#xff1a;算法学习笔记记录日常分享&#xff0c;需要的看哈O(…

【是C++,不是C艹】 类与对象 | 认识面向对象 | 访问限定符 | 封装 | this指针

&#x1f49e;&#x1f49e;欢迎来到 Claffic 的博客&#x1f49e;&#x1f49e; &#x1f449; 专栏&#xff1a;《是C&#xff0c;不是C艹》&#x1f448; 前言&#xff1a; 在C入门之后&#xff0c;就要进入C的第一个核心&#xff1a;类与对象&#xff0c;这期带大家认识认识…

Multichain跨链无法到账,DApp真去中心化or伪去中心化?

团队出问题&#xff0c;DApp就用不了&#xff0c;multichain被不少人质疑伪去中心化&#xff0c;甚至更有人开始质疑web3&#xff0c;那么这到底是怎么回事呢&#xff1f; 跨链桥问题让DApp的去中心化引发质疑 事情是这样的&#xff0c;5月24下午0xscope发推称与multichain有关…

leetcode 11.盛最多水的容器

题目描述 跳转到leetocde题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff…

RabbitMQ手动ACK与死信队列

为了保证消息从队列可靠的达到消费者&#xff0c;RabbitMQ 提供了消息确认机制&#xff08;Message Acknowledgement&#xff09;。 默认情况下RabbitMQ在消息发出后就立即将这条消息删除,而不管消费端是否接收到,是否处理完,导致消费端消息丢失时RabbitMQ自己又没有这条消息了…

spring-Bean管理-springboot原理-Maven高级

spring-Bean管理-springboot原理-Maven高级 配置优先级Bean管理1.获取bean2.bean作用域3.第三方bean SpringBoot原理Maven高级1.分模块设计与开发2.继承与聚合3.私服1.介绍2.资源上传与下载 配置优先级 优先级(低→高) application.yaml&#xff08;忽略) application.yml appl…

利用Servlet编写第一个“hello world“(续)

利用Servlet编写第一个“hello world“ &#x1f50e;通过插件 Smart Tomcat 简化 打包代码 与 部署 操作下载Smart Tomcat配置Smart Tomcat &#x1f50e;Servlet 中的常见错误404(Not Found)&#x1f36d;请求路径出错&#x1f36d;war 包未被正确加载 405(Method Not Allowe…

【Android-JetpackCompose】13、实战在线课程 App

文章目录 一、BottomNavigation 底部导航1.1 底部导航栏的布局、点击1.2 设置 bottomBar 的颜色1.3 设置顶部 actionBar 的颜色 二、主页 StudyScreen2.1 顶部状态栏2.2 一、BottomNavigation 底部导航 1.1 底部导航栏的布局、点击 首先&#xff0c;构造 NavigationItem 的 d…

安装stable-diffusion

安装流程&#xff1a; 下载stable-diffusion源码 <https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.2.1>安装python <https://www.python.org/ftp/python/3.10.6/python-3.10.6-amd64.exe>添加host 打开C:\Windows\System32\drivers\etc…

django基于scrapy的音乐歌曲分析及推荐系统

而在线音乐网站作为一个网络载体&#xff0c;在音乐的传播&#xff0c;创作&#xff0c;欣赏等方面对音乐的发展产生了前所未有的影响—。 &#xff08;1&#xff09;电脑网络技术的发展使人们通过音乐网站接触到了多的音乐模式。 &#xff08;2&#xff09;网民数量的激增使更…

两台群晖NAS之间使用FTP或SFTP进行数据高速拷贝问题

两台群晖NAS之间使用FTP或SFTP进行数据高速拷贝问题 为了更好的浏览体验&#xff0c;欢迎光顾勤奋的凯尔森同学个人博客http://www.huerpu.cc:7000 在有些时候&#xff0c;我们新买了一台全新群晖NAS需要把旧群晖NAS里的数据拷贝到新设备里&#xff0c;特别像电影、电视剧、小…