【每日一题】【数学推导】【分类讨论】小红的数组重排 牛客周赛 Round 55 C题 C++

news2024/11/24 14:45:55

牛客周赛 Round 55 C题

小红的数组重排

题目背景

牛客周赛 Round 55

题目描述

在这里插入图片描述

样例 #1

样例输入 #1

4
7 2 5 1

样例输出 #1

YES
1 5 2 7

样例 #1

样例输入 #1

6
1 1 4 5 1 4

样例输出 #1

NO

做题思路

a 1 ∗ a 2 < a 2 ∗ a 3 < . . . < a n − 1 ∗ a n a_1*a_2 \lt a_2 * a_3 \lt ... \lt a_{n-1} * a_n a1a2<a2a3<...<an1an

拆解不等式变为
a 1 ∗ a 2 < a 2 ∗ a 3 a_1*a_2 \lt a_2 * a_3 a1a2<a2a3
a 2 ∗ a 3 < a 3 ∗ a 4 a_2*a_3 \lt a_3 * a_4 a2a3<a3a4
a 3 ∗ a 4 < a 4 ∗ a 5 a_3*a_4 \lt a_4 * a_5 a3a4<a4a5

a n − 2 ∗ a n − 1 < a n − 1 ∗ a n a_{n-2}*a_{n-1} \lt a_{n-1} * a_n an2an1<an1an

将上述不等式左右两边相等的消去可得
a 1 < a 3 a_1 \lt a_3 a1<a3
a 2 < a 4 a_2 \lt a_4 a2<a4
a 3 < a 5 a_3 \lt a_5 a3<a5

a n − 3 < a n − 1 a_{n-3} \lt a_{n-1} an3<an1
a n − 2 < a n a_{n-2} \lt a_n an2<an

再把不等式进行拼接发现
a 1 < a 3 < a 5 . . . < a n , ( n 为奇数 ) a_1 \lt a_3 \lt a_5 ... \lt a_n , (n为奇数) a1<a3<a5...<an,(n为奇数)
a 2 < a 4 < a 6 . . . < a n − 1 , ( n 为奇数 ) a_2 \lt a_4 \lt a_6 ... \lt a_{n-1} , (n为奇数) a2<a4<a6...<an1,(n为奇数)

变成两个不等式链。
如果出现两个相同的数字,可以分别放入两个不等式链中使其成立,如果出现三个数字相等,由鸽巢定理可得至少有两个相等的数字会出现在同一个不等式链中,因为不等式链是严苛的,所以必定不成立。

所以判断是否可行的第一点就是判断是否出现三个及以上的数字相同。

但要注意一点是,对于0的个数的判断。

如果0出现了两次,那么必定会导致原本的不等式链 a x ∗ a x + 1 < a x + 1 ∗ a x + 2 a_x * a_{x+1} \lt a_{x+1} * a_{x+2} axax+1<ax+1ax+2不成立,因为只要0出现了两次,那么无论怎么排序,0必定会出现在不等式的两端。

最后如果能够成立,仅需将原数组排序即可,因为相同的两个数字会分到奇偶两个下标,进入不同的等式链中。

代码

#include <iostream>
#include <algorithm>
#include <vector>
#include <map>
#include <queue>
#include <tuple>
#include <cstring>
#include <cmath>
#include <cstdio>
#define int long long
using namespace  std;
const int N = 5e5+10;
const int INF = 0x3f3f3f3f3f3f3f3f;
int bt[4][2] = {{0,1},{1,0},{-1,0},{0,-1}};

int n,m;
int a[N];


void init(){

}

void solve(){
    init();
    cin >> n ;
    map<int,int>mp;
    for(int i=1;i<=n;i++) { 
        cin >> a[i];
        mp[a[i]]++;
        if(mp[a[i]] > 2) { cout << "NO";return ; }
    }
    if(mp[0]==2){
        cout << "NO";return ;
    }
    cout << "YES\n";
    sort(a+1,a+1+n);
    for(int i=1;i<=n;i++)cout << a[i] << ' ';
}

signed main(){
    int _=1;//cin >> _;
    while(_--)solve();
    return 0;
}

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

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

相关文章

【Kettle】kettle连接MySQL数据库连接不上解决方案汇总

前言 近期项目上经常用到ETL&#xff08;数据抽取转换加载&#xff09;&#xff0c;就想到了之前用过的kettle工具&#xff0c;下班回家想着再玩玩这个工具吧&#xff0c;结果在连接MySQL时&#xff0c;遇到了各种问题&#xff0c;就顺手整理记录一下。所以今天晚上的主题是&a…

SuccBI+低代码文档中心 — 可视化分析(仪表板)(上)

有关仪表板的设计器&#xff1a; 查询设置 由于仪表板的设计器是所见即所得的&#xff0c;可以将当前制作的内容和数据的查询结果实时展示在界面中&#xff0c;当引入到仪表板的模型数据量较大时&#xff0c;为了提高设计器界面的查询性能&#xff0c;提供了以下两种方法&…

PythonStudio 控件使用常用方式(二十一)TTrayIcon

PythonStudio是一个极强的开发Python的IDE工具&#xff0c;官网地址是&#xff1a;https://glsite.com/ &#xff0c;在官网可以下载最新版的PythonStudio&#xff0c;同时&#xff0c;在使用PythonStudio时&#xff0c;它也能及时为用户升到最新版本。它使用的是Delphi的控件&…

SSL发送邮件:如何确保邮件传输过程安全?

SSL发送邮件的安全性评估&#xff1f;SSL发送邮件的条件有哪些&#xff1f; 使用SSL发送邮件是一种有效的措施&#xff0c;能够确保邮件在传输过程中的安全性。AokSend将探讨SSL发送邮件的关键技术及其重要性&#xff0c;帮助您更好地理解如何确保邮件传输过程的安全。 SSL发…

米思奇安装——Mac版本

米思奇安装——Mac版本 1.下载 访问米思奇官网https://mixly.org/bnu-maker/mixl2.0rc 打开官网后在首页点击导航栏的软件平台&#xff0c;选择Mixly离线版 点击Mixly2.0RC4发布下载。 进入百度网盘分享的文件&#xff0c;选择Mac一键更新版本&#xff0c;等待下载完成。 …

机器学习——第十一章 特征选择与稀疏学习

11.1 子集搜索与评价 对一个学习任务来说&#xff0c;给定属性集&#xff0c;其中有些属性可能很关键、很有用&#xff0c;另一些属性则可能没什么用.我们将属性称为"特征" (feature) &#xff0c;对当前学习任务有用的属性称为"相关特征" (relevant featu…

【Pyspark-驯化】一文搞懂Pyspark中表连接的使用技巧

【Pyspark-驯化】一文搞懂Pyspark中表连接的使用技巧 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 相关内容文档获取 微信公众号 &…

ios创建控制器的3种方法实现页面跳转

ios遵守mvc设计模式&#xff0c;下面介绍创建控制器viewcontroller的几种方法&#xff0c;来实现页面的跳转 1.纯代码创建 // // AppDelegate.m // study2024 // // Created by zhifei zhu on 2024/8/7. //#import "AppDelegate.h" #import "MyViewContro…

代理模式-

代理模式通常找到代理方来管理用户的权限访问。如下图&#xff1a; #include<string> #include<iostream> using namespace std; class Video { public:virtual void Free() 0;virtual void VIP() 0;virtual void Ticket() 0; }; class FixbugVideo:public V…

机械学习—零基础学习日志(项目实践01)

llM项目分类与原理解析 Prompt项目 直接产出一些具体的文本与信息&#xff0c;使用markdown的格式。 对prompt进行较好的格式输出&#xff0c;固定格式。 ChatPaper 快速获取论文内容&#xff0c;然后了解对应的信息&#xff0c;判断是否有必要阅读这一篇论文 ChatBI&…

Adobe Dimension DN v4.0.2 解锁版下载及安装教程 (三维3D建模工具)

前言 Adobe Dimension&#xff08;简称DN&#xff09;是一款3D设计软件&#xff0c;三维合成和渲染工具&#xff0c;2D平面的二维转为3D立体的三维合成工具&#xff0c;用于3Dmax\C4D\MAYA等三维软件生成的效果图&#xff0c;在3D场景中排列对象、图形和光照。3D应用程序使用的…

python循环语句之while循环和for循环

文章目录 1. while 循环1.1 介绍1.1.1 生活中的循环1.1.2 程序中的循环 1.2 总结 2. while循环应用&#xff1a;1~100求和2.1 需求2.2 分析 3. while嵌套循环以及运用3.1 while嵌套循环语句的语法格式3.2 while嵌套循环使用3.2.1 要求3.2.2 参考代码 4. for循环4.1 for循环基本…

2024自动驾驶(多模态)大模型综述:从DriveGPT4、DriveMLM到DriveLM、DriveVLM

前言 由于今年以来&#xff0c;一直在不断深挖具身智能机器人相关&#xff0c;而自动驾驶其实和机器人有着无比密切的联系&#xff0c;甚至可以认为&#xff0c;汽车就是一个带着4个轮子的机器人 加之个人认为&#xff0c;目前大模型落地潜力最大的两个方向&#xff0c;一个是…

【BES2500x系列 -- RTX5操作系统】系统执行流程 -- 应用初始化 -- app_init() --(十二)

&#x1f48c; 所属专栏&#xff1a;【BES2500x系列】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f49…

Linux:多线程(三.POSIX信号量、生产消费模型、线程池、其他常见的锁)

上次讲解了&#xff1a;Linux&#xff1a;多线程&#xff08;二.理解pthread_t、线程互斥与同步、基于阻塞队列的生产消费模型&#xff09; 文章目录 1.POSIX信号量1.1引入1.2回顾加深理解信号量1.3信号量的操作接口 2.基于循环队列的生产消费模型2.1循环队列2.2整个项目 3.线程…

fastadmin自定义弹框,以及回调函数等问题,

效果图 1&#xff0c; 代码 弹框中使用弹框 弹框1代码主要代码 <div class"form-group ccol-xs-12 col-sm-2" style"text-align: right"><a href"#" data-url"{:url(user/add)}" class"btn btn-info" id"a…

Android逆向题解-boomshakalaka-3-难度5

这个app 是一个cocos游戏&#xff0c;没有用脚本实现&#xff0c;纯c实现。 题目描述:play the game, get the highest score 题目要求是玩游戏得到最高分就可以得到flag&#xff0c;是写到配置文件的&#xff0c;初始flag值看着是base编码的。 核心代码在so里面的ControlLay…

GPT-4o:开启多模态AI识别新纪元

GPT-4o功能简介 在人工智能的演变历程中&#xff0c;图像识别技术始终占据着核心地位。技术的发展日新月异&#xff0c;使得AI不仅能够识别图像内容&#xff0c;还能将其转化为文字描述。特别值得一提的是&#xff0c;OpenAI在春季发布的GPT-4o模型&#xff0c;将图像识别技术…

Spring项目:文字花园(一)

前言 实现登录注册功能。 ⽤⼾登录成功后, 可以查看所有⼈的博客. 点击 <<查看全⽂>> 可以查看该博客的正⽂内容. 如果该博客 作者为当前登录⽤⼾, 可以完成博客的修改和删除操作, 以及发表新博客 一.准备工作 1.1注入sql &#xff08;数据准备&#xff09; -- 建…

解决No module named ‘tensorflow‘

import tensorflow as tf ModuleNotFoundError: No module named tensorflow 安装合适的tensorflow版本 先查看自己的python版本 或者输入指令&#xff1b;python --version 安装兼容的tensorflow版本&#xff0c;安装指定版本的tensorflow pip install tensorflow-gpu2.3.0…