Codeforces Round 888 (Div. 3)ABC

news2025/1/18 21:18:12

Codeforces Round 888 (Div. 3)

目录

  • A. Escalator Conversations
    • 题目大意
    • 思路
    • 代码
  • B. Parity Sort
    • 题目大意
    • 思路
    • 代码
  • C. Tiles Comeback
    • 题目大意
    • 思路
    • 代码

A. Escalator Conversations

在这里插入图片描述

题目大意

判断有多少个人能够通过站在楼梯上的操作和VLAD一样高或者是VLAD通过站在楼梯上的操作能和多少人一样高,求和
翻译:

有一天,弗拉德很好奇,在地铁的自动扶梯上他能和谁说话。一共有n名乘客。自动扶梯共有m级台阶,所有台阶的索引为1 ~
m,第i级台阶的高度为i⋅k。

弗拉德的身高是H厘米。身高a和b的两个人站在不同的台阶上,如果他们之间的高度差等于台阶之间的高度差,他们可以在自动扶梯上交谈。

例如,两个人身高分别为170厘米和180厘米,m=10,k=5,那么他们可以站在7号和5号台阶上,台阶之间的高度差等于两个人之间的高度差:k·2=5·2=10=180−170。还有其他可能的方法。

给定大小为n的数组h,其中hi表示第i个人的高度。弗拉德感兴趣的是在自动扶梯上他能和多少人单独交谈。

例如,如果n=5,m=3,k=3,H=11,H=[5,4,14,18,2],则Vlad可以与身高为5的人(Vlad站在第1步,另一个人站在第3步)和身高为14的人(Vlad站在第3步,另一个人站在第2步)进行对话。弗拉德无法与身高2的人交谈,因为即使他们站在自动扶梯的极端台阶上,他们之间的高度差也是6,而他们的高度差是9。弗拉德不能和电梯上的其他人交谈,所以这个例子的答案是2。

输入 第一行包含一个整数t(1≤t≤1000)——测试用例的数量。然后是测试用例的描述。

每个测试用例的第一行包含整数n、m、k、H(1≤n,m≤50,1≤k,H≤106)。这里,n是人数,m是步数,k是相邻步数之间的高度差,H是弗拉德的高度。

第二行包含n个整数:h1,h2,…,hn(1≤hi≤106)。这里,hi代表第i个人的身高。

输出 对于每个测试用例,输出一个整数——Vlad可以在自动扶梯上单独与之交谈的人数。

思路

站在楼梯上的操作就是增加或者是减少k的倍数,楼梯的阶梯数量就是这个倍数是由范围的,所以直接作差,然后需要判断这个差是不是k的倍数,如果不是k的倍数那么就肯定不能进行交谈,如果是k的倍数的话还需要进行范围的判断,都在范围的话就是能够进行交谈的人。

代码

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n,m,k,h;
        scanf("%d%d%d%d",&n,&m,&k,&h);
        int ans=0;
        for(int i=0;i<n;++i)
        {
            int shuru;
            scanf("%d",&shuru);
            int cha=(int)abs(h-shuru);
            if(cha%k!=0||cha==0)continue;
            if(cha/k<m)ans++;
        }
        printf("%d\n",ans);
    }
    return 0;
}

B. Parity Sort

在这里插入图片描述

题目大意

已知一个数组,可以对两个奇数或者偶数进行对换操作,询问是否能转换成有序数组
翻译:

你有一个长度为n的整数数组。你可以对给定的数组应用以下操作:

交换两个元素ai和aj使得i≠j,
ai和aj要么都是偶数,要么都是奇数。确定是否可以通过执行任意次数(可能为零)的操作来对数组进行非降序排序。

例如,设a =[7,10,1,3,2]。然后我们可以执行3个操作来对数组进行排序:

交换a3=1和a1=7,因为1和7是奇数。得到a = [1,10,7,3,2]; 交换a2=10和a5=2,因为10和2是偶数。得到a
=[1,2,7,3,10]; 交换a4=3和a3=7,因为3和7是奇数。得到a =[1,2,3,7,10]。

输入 输入数据的第一行包含一个整数t(1≤t≤104)——测试用例的数量。 下面是测试用例的描述。
每个测试用例的第一行包含一个整数n(1≤n≤2·105)-数组a的长度。

每个测试用例的第二行包含恰好n个正整数a1,a2,…,an(1≤ai≤109)——数组a的元素。

保证n除以所有测试用例的和不超过2⋅105。

输出 对于每个测试用例,在单独的行上输出:

如果数组可以通过对其进行一定次数的操作来排序,则为YES;否则为NO。 您可以在任何情况下输出YES和NO(例如,字符串YES, YES,
YES和YES将被识别为正响应)。

思路

在输入的过程中记录每一个数的奇偶性,然后直接对原来数组进行排序,如果能够按照题目的要求进行操作则该数组的初始状态奇偶性和排序之后的奇偶性一样,直接对比就能够得到答案

代码

#include<bits/stdc++.h>
using namespace std;

const int N = (int)2e5+10;

int cmp(int a,int b)
{
    return a<b;
}

int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n;
        scanf("%d",&n);
        int a[N]{0},b[N]{0};
        for(int i=0;i<n;++i)
        {
            scanf("%d",&a[i]);
            b[i]=a[i]%2;
        }
        sort(a,a+n,cmp);
        bool pd=0;
        for(int i=0;i<n;++i)
            if((a[i]%2)!=b[i])
            {
                pd=1;
                break;
            }
        if(pd)printf("NO\n");
        else printf("YES\n");
    }
    return 0;
}

C. Tiles Comeback

在这里插入图片描述

题目大意

翻译:

弗拉德记得他有一串n块瓷砖和一个数字k。这些瓷砖从左到右编号,第i块瓷砖的颜色是ci。

如果你站在第一个贴图上并开始跳跃任意数量的贴图,你就可以得到一条长度为p的路径。路径的长度就是你所站的贴图的数量。

Vlad想看看是否有可能得到一个长度为p的路径,使得:

它在索引为n的tile处结束,p可以被k整除路径被分成长度为k的块,每个块中的tile具有相同的颜色,相邻块中的颜色不一定不同。例如,设n=14,
k=3。

瓷砖的颜色包含在数组c=[1,2,1,1,7,5,3,3,1,3,4,4,2,4]。然后我们可以构造一个长度为6的路径,包含两个块:
c1→c3→c4→c11→c12→c 14 第1块中的所有瓷砖的颜色为1,第2块中的所有瓷砖的颜色为4。

在这个例子中,我们也可以构造一个长度为9的路径,其中第1个方块的所有贴图的颜色是1,第2个方块的所有贴图的颜色是3,第3个方块的所有贴图的颜色是4。

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

下面是测试用例的描述。

每个测试用例的第一行包含两个整数nand k(1≤k≤n≤2·105) )——该系列中瓦片的数量和块的长度。

每个测试用例的第二行包含n个整数c1,c2,c3,…,cn (1≤ci≤n)—瓷砖的颜色。

保证n除以所有测试用例的和不超过2⋅105。

输出 对于每个测试用例,在单独的行上输出:

如果您能得到满足这些条件的路径,则为;否则为否。 您可以在任何情况下输出YES和NO(例如,字符串YES, YES,
YES和YES将被识别为正响应)。

思路

分成长度为k的块,所以只需要特别判断一开始的数字能不能实现以及最后的哪一个数组能不能实现即可,需要特别注意一下一开始的数字和最后的数字一样的情况就好

代码

#include<bits/stdc++.h>
using namespace std;

const int N = (int)2e5+10;

int cmp(int a,int b)
{
    return a<b;
}

int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n,k;
        scanf("%d%d",&n,&k);
        int a[N]{0};
        for(int i=0;i<n;++i)
            scanf("%d",&a[i]);
        int zhizhen1=0,zhizhen2=n-1;
        int geshu1=0,geshu2=0;
        while(zhizhen1<n&&geshu1<k)
        {
            if(a[zhizhen1]==a[0])
            {
                geshu1++;
            }
            zhizhen1++;
        }
        if(geshu1==k)zhizhen1--;
        while(zhizhen2>=0&&geshu2<k)
        {
            if(a[zhizhen2]==a[n-1])
            {
                geshu2++;
            }
            zhizhen2--;
        }
        if(geshu2==k)zhizhen2++;
        if(geshu1!=k||geshu2!=k)
        {
            printf("NO\n");
            continue;
        }
        if(a[0]==a[n-1])
        {
            if(geshu1==k)printf("YES\n");
            else printf("NO\n");
            continue;
        }
        else
        {
            if(zhizhen1>zhizhen2)printf("NO\n");
            else printf("YES\n");
            continue;
        }
        printf("\n\n");
    }
    return 0;
}

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

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

相关文章

6.1 MyBatis基础

1.MyBatis概述 MyBatis本是apache的一个开源项目iBatis&#xff0c;2010年这个项目由apache software foundation迁移到了google code&#xff0c;并且改名为MyBatis&#xff0c;2013年11月MyBatis又被迁移到Github。 MyBatis是一个支持普通SQL查询、存储过程以及高级映射的持…

欧拉算法与埃氏筛法比较

#include<iostream> using namespace std; bool data[100000005]; // zhishu用于存储质数的数组 &#xff0c;cnt下标 int zhishu[100000000],cnt0;int main() {data[1] 1;// 1表示素数 int n;cin >> n;// 循环遍历for(int i2;i<n;i){if(data[i] 0){// 表明是…

嵌入式学习之C语言指针部分复习

今天主要把C语言的指针部分再次认真的复习了一下&#xff0c;对于指针的整体框架有了更加深刻的理解&#xff0c;特别要重点区分函数指针&#xff0c;指针函数&#xff0c;数组指针&#xff0c;指针数组部分&#xff0c;对于这部分的应用回非常的重要&#xff0c;而且C语言指针…

海龟绘图——长方体(包含建立和销毁的过程)

运行结果&#xff1a; 代码&#xff1a; import turtle turtle.setup(1024,1024,200,200)# 移动画笔 turtle.penup() turtle.goto(-200,200) turtle.pendown() # 绘制第一条实线 turtle.setheading(0) turtle.forward(300) # 绘制第二条实线 turtle.setheading(18045) turtle.…

Python语法基础--条件选择

学习目标 使用比较运算符编写布尔表达式。使用random.randint(a,b)或者random.random()函数来生成随机数。编写布尔表达式(AdditionQuiz)。使用单向if语句实现选择控制。使用单向if语句编程。使用双向if-else语句实现选择控制。使用嵌套if和多向if-elif-else语句实现选择控制。…

winform使用IrisSkin4.dll换肤后排除控件

设置控件的tag属性为9999 参考&#xff1a; https://www.cnblogs.com/mq0036/p/6654219.html

YOLOV5改进:加入RCS-OSA模块,提升检测速度

1.该文章属于YOLOV5/YOLOV7/YOLOV8改进专栏,包含大量的改进方式,主要以2023年的最新文章和2022年的文章提出改进方式。 2.提供更加详细的改进方法,如将注意力机制添加到网络的不同位置,便于做实验,也可以当做论文的创新点。 2.涨点效果:RCS-OSA模块更加轻量化,有效提升检…

一场大火烧毁了印度的芯片梦 | 百能云芯

谈起印度的半导体发展史&#xff0c;鲜为人知的是&#xff0c;该国曾有可能成为全球半导体制造业的重要中心。然而&#xff0c;一个意外的事件彻底改变了历史进程&#xff0c;让印度错失了超越台积电的机会。 01半导体制造潜力 在高科技行业&#xff0c;也许很多人都不看好印度…

UE5.2程序发布及运行问题记录

发布后的程序默认是以全屏模式启动运行的&#xff0c;通过添加以下命令行参数&#xff0c;可实现程序的窗口模式运行&#xff1a; -ResX1280 -ResY720 -WINDOWED 发布后的程序&#xff0c;启动时&#xff0c;提示显卡驱动警告&#xff08;如图1所示&#xff09;&#xff0c;但是…

Java-Sec-Code靶场

文章目录 前言1.靶场搭建靶场地址、环境Window环境修改点 靶场通关和源码分析命令注入RCE反序列化fastjson反序列化目录穿越文件上传Spel表达式sql注入poi-ooxml组件XXE 总结 前言 一直都是一个Java盲&#xff0c;但是如今Java却占据了开发的半壁江山&#xff0c;平时遇见的多…

情感分析工具: TextBlob 与 VADER 的对比

一、说明 在本文我们将看到&#xff0c;在情感分析方面&#xff0c;我们更喜欢哪个库。这取决于很多情况。例如。数据采集。在我们进行分析之前&#xff0c;让我们先看看这两个库是关于什么的。 二、亮相工具库 2.1. 工具库TextBlob介绍&#xff1a; 图像。TextBlob: Simplif…

对自定义表格数据设计自定义查询/汇总

目录 1 前言 2 生成数据 3 设计一个汇总 4 试一下效果 5 导出为excel文件的源代码 6 后记 1 前言 对自定义表格中录入或者导入的数据&#xff0c;必须能定义查询和汇总&#xff0c;否则程序基本没什么用。就是说&#xff0c;程序应该具备对任意表格进行方便的查询汇总公式…

VS Code终端系统启动失败的问题

一百度真的是各种各样打不开&#xff0c;有的配置一下就可以了&#xff0c;有的改成管理员权限就可以了&#xff0c;我的是怎么设置都不行&#xff0c;安装了最新版本的不行&#xff0c;又退了几个版本才行了&#xff0c;1.56版本内网行&#xff0c;1.55版本能行&#xff0c;比…

企业权限管理(十五)-方法级别权限控制

方法级别权限控制 jsr-250 3.Secured注解使用 开启表达式的使用 页面控制 显示xxx在线 <div class"pull-left info"><p><security:authentication property"principal.username"></security:authentication></p><a h…

Blazor:子组件deep:: 样式修改无效

文章目录 资料无效代码有效代码 资料 Blazor Css隔离 简单来说&#xff0c;就是外层要加个div&#xff0c;不加div就无法识别。 无效代码 <Layout ShowFooter"true" class"Layout" SideWidth"100px"><Header><div class"t…

C语言刷题训练DAY.3

1.ASCII码 解题思路&#xff1a; 这里直接以字符的形式打印就行&#xff1a; 解题代码&#xff1a; #include<stdio.h> int main() {printf("%c%c%c%c%c%c%c%c%c%c%c%c", 73, 32, 99, 97, 110, 32, 100, 111, 32, 105, 116, 33);return 0; } 2.出生日期输…

09 - 连续的多个commit整理成1个

查看所有文章链接&#xff1a;&#xff08;更新中&#xff09;GIT常用场景- 目录 文章目录 将连续的多个commit整理成1个 将连续的多个commit整理成1个 将anranxiaohunzhang和xianglongshibazhang合并起来&#xff08;将anranxiaohunzhang合并到降龙十八掌上&#xff0c;生成新…

概要设计完整版word文档,《某信息管理平台总体设计方案》,505页20万字供参考,附下载

上一篇介绍了软件生命周期全过程&#xff0c;软件工程全周期全过程20项文档模板&#xff0c;附下载。从《合同》到《需求规格说明书》到软件设计、开发、实施、验收、维护等全过程相关文档模板。有朋友反馈附件内容没有补全&#xff0c;本次及后续会用实际案例补全附件内容&…

竞赛项目 疲劳驾驶检测系统 python

文章目录 0 前言1 课题背景2 Dlib人脸识别2.1 简介2.2 Dlib优点2.3 相关代码2.4 人脸数据库2.5 人脸录入加识别效果 3 疲劳检测算法3.1 眼睛检测算法3.2 打哈欠检测算法3.3 点头检测算法 4 PyQt54.1 简介4.2相关界面代码 5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#x…