Educational Codeforces Round 99 (Rated for Div. 2) D. Sequence and Swaps

news2025/1/16 20:15:57

翻译:

您将得到一个序列𝑎,该序列由𝑛个整数𝑎1、𝑎2、…、𝑎𝑛和一个整数𝑥组成。您的任务是使序列𝑎排序(如果条件𝑎1≤𝑎2≤𝑎3≤⋯≤𝑎𝑛存在,则认为该序列已排序)。

为了使序列排序,您可以执行以下操作任意次(可能是0次):选择一个整数𝑖,使1≤𝑖≤𝑛和𝑎𝑖>𝑥,并交换𝑎𝑖和𝑥的值。

例如,如果𝑎=[0,2,3,5,4],𝑥=1,则可能有以下操作顺序:

选择𝑖= 2(可能因为𝑎2 >𝑥),然后𝑎=[0、1、3、5、4],𝑥= 2;
选择𝑖= 3(可能因为𝑎3 >𝑥),然后𝑎=[0、1、2、5、4],𝑥= 3;
选择𝑖= 4(可能因为𝑎4 >𝑥),然后𝑎=[0,1,2,3,4),𝑥= 5。
计算您必须执行的最小操作数量,以便𝑎被排序,或者报告这是不可能的。

输入
第一行包含一个整数𝑡(1≤𝑡≤500)——测试用例的数量。

每个测试用例由两行组成。第一行包含两个整数𝑛和𝑥(1≤𝑛≤500,0≤𝑥≤500)——序列中的元素个数和𝑥的初始值。

第二行包含𝑛个整数𝑎1,𝑎2,…,𝑎𝑛(0≤𝑎𝑖≤500)。

输入中所有测试用例中𝑛的值之和不超过500。

输出
对于每个测试用例,打印一个整数——使𝑎排序所需执行的最小操作数,如果不可能,则打印−1。

例子
inputCopy
6
4个1
2 3 5 4
5个6
1 1 3 4 4
1 10
2
2 10
11日9
2 10
12 11
5日18
81 324 218 413 324
outputCopy
3.
0
0
-1
1
3.

思路:

数据范围比较小,我们来确实排列是否符合,可以直接暴力判断。如果一个不符合,我们需要替换,但是替换的时候前边的也要满足条件。而且我们不能先换大的,再换小的,因为交换有要求a[i]>x,才可以替换。所以我们从前往后如果可以替换就替换掉,因为如果可以替换的话,x就是小于a[i]的,如果替换了后边的大的,还是不符合,所以随着我们不断替换,前边的序列会越来越小,之后大可以替换比前边大的。有点绕,需要仔细想一下

代码:

/*Looking! The blitz loop this planet to search way
 
 Only my RAILGUN can shoot it 今すぐ
 
 身体中を  光の速さで
 
 駆け巡った確かな予感
 
 掴め! 望むものなら残さず
 
 輝ける自分らしさで
 
 信じてるよ  あの日の誓いを
 
 この瞳に光る涙それさえも  強さになるから
 
 */
#include <iostream>
#include <algorithm>
#include <string.h>
#include <string>
#include <math.h>
#include <stdio.h>
#include<vector>
#include<queue>
#include<map>
#include<set>
#include<tuple>
#include<numeric>
#include<stack>
using namespace::std;
typedef long long  ll;
int n,t;
inline __int128 read(){
    __int128 x = 0, f = 1;
    char ch = getchar();
    while(ch < '0' || ch > '9'){
        if(ch == '-')
            f = -1;
        ch = getchar();
    }
    while(ch >= '0' && ch <= '9'){
        x = x * 10 + ch - '0';
        ch = getchar();
    }
    return x * f;
}
inline void print(__int128 x){
    if(x < 0){
        putchar('-');
        x = -x;
    }
    if(x > 9)
        print(x / 10);
    putchar(x % 10 + '0');
}

int a[505],m;
int pd(){
    for (int i =2; i<=n; i++) {
        if (a[i-1]>a[i]) {
            return 0;
        }
    }
    return 1;
}
void wanyurukong(){
    cin>>n>>m;
    for (int i =1; i<=n; i++) {
        cin>>a[i];
    }
    if (pd()) {
        printf("0\n");return;
    }
    int ff=0;
    for (int i =1; i<=n; i++) {
        if (a[i]>m) {
            ff++;
            swap(a[i], m);
        }
        if (pd()) {
            printf("%d\n",ff);return;
        }
    }printf("-1\n");
    
    
    
}
int main(){
    ios::sync_with_stdio(false);
    cin.tie(); cout.tie();
    cin>>t;
    while (t--) {
        wanyurukong();
    }
    //wanyurukong
    return 0;
}
 

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

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

相关文章

java突发内存和CPU同时100%排查解决

问题说明 springBoot 微服务项目&#xff0c;生产环境突然CPU和内存使用率都100%&#xff0c;导致接口请求超时。 初步排查 接口慢首先排除数据库和慢sql的影响&#xff0c;本次问题是所有接口同事慢&#xff0c;不是单个接口&#xff0c;所以不是数据库问题。大面积接口慢很…

【BP靶场-服务端】SQL注入-17个实验

目录 一、SQL意义 1、目的&#xff1a; 2、示例&#xff1a; 二、检索隐藏数据 实验1&#xff1a;隐藏商品 三、颠覆应用程序逻辑 实验2&#xff1a;登陆逻辑 四、从其他数据库表中检索数据 实验3&#xff1a;判断列 实验4&#xff1a;判断字段对应位置 实验5&#…

门控循环单元(GRU)

门控循环神经网络可以更好地捕获时间步距离很长的序列上的依赖关系。 重置门有助于捕获序列中的短期依赖关系。 更新门有助于捕获序列中的长期依赖关系。 重置门打开时&#xff0c;门控循环单元包含基本循环神经网络&#xff1b;更新门打开时&#xff0c;门控循环单元可以跳…

2023年广东数据分析师CPDA认证招生简章(理论+实战)

CPDA数据分析师认证是中国大数据领域有一定权威度的中高端人才认证&#xff0c;它不仅是中国较早大数据专业技术人才认证、更是中国大数据时代先行者&#xff0c;具有广泛的社会认知度和权威性。 无论是地方政府引进人才、公务员报考、各大企业选聘人才&#xff0c;还是招投标加…

Github上排名前五的开源网络监控工具,附详细的图文说明和项目下载地址

Github上排名前五的开源网络监控工具&#xff0c;附详细的图文说明和项目下载地址。 维护网站正常运行是系统管理员最基本的任务之一&#xff0c;所以对系统进行监视&#xff0c;并保持网络的最佳运行状态至关重要。 在现代的网络中&#xff0c;有许多不同的方法来监视&#…

LeetCode刷题之406 根据身高重建队列(贪心算法)

题目描述 假设有打乱顺序的一群人站成一个队列&#xff0c;数组 people 表示队列中一些人的属性&#xff08;不一定按顺序&#xff09;。每个 people[i] [hi, ki] 表示第 i 个人的身高为 hi &#xff0c;前面 正好 有 ki 个身高大于或等于 hi 的人。 请你重新构造并返回输入数…

元宇宙数字产品制作厂商广州华锐互动如何?

近两年&#xff0c;元宇宙引发全球的高度关注&#xff0c;很多玩家也都开始参与进来。作为虚拟世界的重要组成部分&#xff0c;元宇宙也从一个概念逐渐演变成了一种全新的商业模式以及行业发展趋势。 元宇宙具有极致沉浸和交互的体验&#xff0c;可以提升生活、工业、社会、科…

云原生之使用Docker部署OneNav个人书签管理器

云原生之使用Docker部署OneNav个人书签管理器一、OneNav介绍1.OneNav简介2.OneNav特点二、检查本地docker环境1.检查docker版本2.检查docker状态三、下载onenav镜像四、部署OneNav应用1.创建数据目录2.创建OneNav容器3.查看OneNav容器状态五、访问OneNav首页六、访问OneNav后台…

难受的这两天,你们怎么样?

12月23号周五&#xff0c;下班回来小云说中午下楼买菜碰到小区认识的一个妈妈&#xff0c;两个人在楼下聊了一会&#xff0c;晚上那个妈妈检测出阳性&#xff0c;周五晚上睡觉前&#xff0c;小云没任何不适&#xff0c;周末看朋友圈和小区已经很多很多人中招&#xff0c;我那时…

大数据系列——什么是hdfs?hdfs用来干什么的?

目录 一、什么是HDFS 二、hdfs用来干什么的 三、hdfs适用场景 四、hdfs不适合的场景 五、hdfs 架构 基本概念 六、HDFS基础命令 七、hdfs业务中应用 一、什么是HDFS HDFS全称是Hadoop Distributed File System是一种分布式文件系统(HDFS使用多台计算机存储文件&#xff…

易基因|深度综述:癌症中RNA修饰机制的遗传和表观遗传失调(m6A+m1A+m5C+ψ)

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 2022年11月12日&#xff0c;《Trends Genet》杂志发表了题为“Genetic and epigenetic defects of the RNA modification machinery in cancer”的综述文章&#xff0c;讨论了m6A、m5C、…

CSS滤镜 filter 网站灰色设置

-webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); -o-filter: grayscale(100%); filter: grayscale(100%); filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale1);例如&#xff1a; CSS滤镜 filter 详情链接 blu…

【K3s】第6篇 详解yaml文件,pod端口供外部访问

目录 1、yaml文件详解 2、pod 容器对外透露端口号 1、yaml文件详解 apiVersion: v1 #创建一个新的命名空间 kind: Namespace metadata:name: test --- apiVersion: apps/v1 #资源版本&#xff0c;可使用 kubectl api-versions命令查看有哪些&#xff0c;只有指定具体的资源…

嵌入式:ARM常用开发编译软件介绍

文章目录编译器介绍1、ADS1.22、ARM RealView Developer Suite (RVDS)3、IAR EWARM4、KEIL ARM-MDKARM5、WIN ARM-GCC ARM编译器介绍 1、ADS1.2 ADS&#xff08;ARM Developer Suite&#xff09;&#xff0c;是在1993年由Metrowerks公司开发是ARM处理器下最主要的开发工具。 他…

结合今年的考试难度浅析浙大MBA/MPA/MEM三项目的分数线趋势…

最近一些天&#xff0c;不少考生都在关注今年的分数线问题&#xff0c;按照往年惯例&#xff0c;这个问题的答案要等到3月10日前后才会出来&#xff0c;包括国家线和浙大自划线两个复试的标尺。但从历史数据和经验方面倒也可以提前针对这个问题做一些趋势分析&#xff0c;特别是…

client-go源码学习(一):client-go源码结构、Client客户端对象

本文基于Kubernetes v1.22.4版本进行源码学习&#xff0c;对应的client-go版本为v0.22.4 1、client-go源码结构 client-go的代码库已经集成到Kubernetes源码中了&#xff0c;源码结构示例如下&#xff1a; $ tree vendor/k8s.io/client-go -L 1 vendor/k8s.io/client-go ├─…

《业务安全大讲堂》——2022全年大回顾!

数字化的深入普及&#xff0c;让企业的业务愈加开放互联。企业的核心业务、关键数据、用户信息、基础设施、运营过程等均处于边界模糊且日益开放的环境中&#xff0c;在电商、支付、信贷、账户、交互、交易等各种形态的业务场景中&#xff0c;存在着形式多样的欺诈行为。而业务…

企业数字化转型迫切,团队协同工具何以成为“杀手锏”?

不久前&#xff0c;2022世界互联网大会乌镇峰会开幕&#xff0c;360创始人周鸿祎以“构建SaaS生态&#xff0c;助力数字化共同富裕”为主题发表分论坛演讲&#xff0c;并宣布360集团正式上线SaaS商店&#xff0c;为中小微企业和实体产业提供一站式数字化转型服务&#xff0c;填…

elasticsearch之metric聚合

文章目录1、背景2、准备数据2.1 准备mapping2.2 准备数据3、metric聚合3.1 max 平均值3.1.1 dsl3.1.2 java代码3.2 min最小值3.2.1 dsl3.2.2 java3.3 min最小值3.3.1 dsl3.3.2 java3.4 min最小值3.4.1 dsl3.4.2 java3.5 count(*)3.5.1 dsl3.5.2 java3.6 count(distinct)3.6.1 d…

一款非常萌的桌面工具 --- Bongo Cat Mver 附使用教程

最近看B站的时候发现了一个很好玩的桌面工具&#xff0c;Bongo Cat Mver 通过多方查找资源&#xff0c;终于找到了&#xff0c;并且已经下载使用 O(∩_∩)O 不知道这只小猫是不是特别好看呢&#xff1f;放在你的桌面上 Bongo Cat Mver简介 Bongo Cat Mver 是一款画风非常萌的…