AcWing第82场周赛

news2024/9/24 11:24:51

目录

1.第k个数

2. 多米诺骨牌

 3.构造序列


 

1.第k个数

题目描述

给定一个长度为n的整数序列,a1,a2,...,an,以及一个整数k,请你计算该数列从大到小排序后的第k个数。

输入格式

第一行包含两个整数n,k

第二行n个整数 

输出格式

输出一个数,表示答案 

数据范围

1<=n<=1000

1<=k<=n

0<=a[i]<=100 

样例输入 1:

5 3

20 10 30 40 10

样例输:1:

20

样例输入2:

6 5

90 20 35 40 60 100

样例输出2:

35

 样例输入3:

4 3

4 3 3 2

样例输出3:

3

我们可以从小到大排序,如何输出第n-k个数即可。

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std;
const int N=1e6+10;
int a[N];
int n;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
    sort(a+1,a+n+1);
    cout<<a[n-k];
    return 0;
}

2. 多米诺骨牌

题目描述

将n块多米诺骨牌排成一排,每块骨牌垂直竖立。

开始时,同时将一些骨牌推倒,有的向右倒,有的向左倒。

保证这些开始就被退倒的骨牌中,任意两块倒向同一方向的骨牌之间都至少存在一块倒向反方向的骨牌。

每一秒后,每个向左倒的骨牌都会推倒其左侧相邻的骨牌,每个向右侧倒的骨牌 都会推倒向右侧相邻的骨牌。

如果在某一时刻,某骨牌两侧的相邻骨牌同时推倒它,则由于力的平衡,则该骨牌会保持竖直不变。

下图给出了几种情况

给定每块骨牌的初始状态,请你判断推倒完毕后,有多少骨牌仍然保持竖直。

输入格式

第一行一个整数n。

第二行包含一个长度为n的字符串,其中的第i个字符表示第i个字符的初始状态:

L表示该骨牌初始时向左倒。

R表示该骨牌初始时向右倒。

保证对于(i,j):

如果i<j,且si和sj均为L,则一定存在k满足i<k<j且sk为R;

如果i<j,且si和sj均为R,则一定存在k满足i<k<j且sk为L; 

 输出格式

一个整数,表示最终保持垂直竖立骨牌的数量。

数据范围

1<=n<=3000 

样例输入1:

14

.L.R...LR..L..

样例输出:

样例输入2:

5

R....

样例输出2:

0

样例输入3:

1

.

样例输出3:

1

思路:如果刚开始的位置存在L,则下一个要推倒的姿态是R,也就是R和L相互间隔。

不会被推倒的骨牌分下面三种情况:

1.如果刚开始存在R,则它前面的都不会被推倒,同理,如果最后一个被推倒的姿态是L,那么它后面的也不会被推倒,还有一种特殊情况,如果没有被推倒的状态,结果为n;

2.如果骨牌在L和R之间,则不会被推倒。

3.如果骨牌在R和L之间,如果骨牌数为奇数,至少存在一个不会被推倒,如果是偶数,则全部都会被推倒。

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std;

int main()
{
    int n;
    string str;
    cin>>n>>str;
    
    int l=0;
    while(l<n&&str[l]=='.') l++;//第一种情况左边没有被推倒的数
    
    int res=0;
    if(l==n) res=n;//如果不存在被推倒的状态,那么全部都是没有被推倒
    else
    {
        if(str[l]=='R') res=l;//左边存在的数
        int r=n-1;
        while(str[r]=='.') r--;
        if(str[r]=='L') res+=n-1-r;//右边存在的
        
        for(int i=l+1,cnt=0;i<=r;i++)
        {
            if(str[i]=='.') cnt++;
            else
            {
                if(str[i]=='L') res+=cnt%2;//第三种情况
                else res+=cnt;//第二种情况
                cnt=0;
            }
        }
    }
    cout<<res;
    return 0;
}

 3.构造序列

题目描述

请你构造一个01序列,序列满足:

恰好有n个0和m个1.不存在两个或两个以上的0连续相邻,不存在三个或者三个以上的1相邻

如果不存在,输出-1;

思路:我们可以先讨论0,不存在两个以上的0相邻,那么至少需要n-1个1,不存在3个以上的1,我们先把两个1放在一起,那么一共有m/2个1,那么至少存在(m/2)-1个0,两个取相反那就是不满足的条件m<n-1||m>2*(n+1)

其他的我们可以先把0摆好,然后每个1放0后面,放完之后还有1,我们可以向在开头放两个1,m-=2,如何放01的后面组成011,最后放多的1;

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;

int main()
{
    int n,m;
    cin>>n>>m;
    if(m<n-1||m>2*(n+1)) puts("-1");
    else
    {
        for(int i=0;i<2;i++)
            if(m>n-1)
            {
                cout<<1;
                m--;
            }
        while(n)
        {
            cout<<0;
            n--;
            if(n)
            {
                cout<<1;
                m--;
                if(m>n-1)
                {
                    cout<<1;
                    m--;
                }
            }
            while(m--) cout<<1;
        }
    return 0;
}

 

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

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

相关文章

Sqoop安装教程

Sqoop安装教程 文章目录Sqoop安装教程一、资料二、安装&#xff08;一&#xff09;上传文件&#xff08;二&#xff09;解压文件&#xff0c;并重命名(三)修改配置文件1、进入到/opt/module/sqoop/conf中2、修改配置文件&#xff08;1&#xff09;将sqoop环境的模板文件&#x…

【M2 VMware Ubuntu】全流程安装指南

这里写自定义目录标题VMware Fusion安装M2 VMware Ubuntu 安装安装桌面环境安装 Open VM 工具禁用 Wayland更新 5.14 内核&#xff08;非必要不要更新&#xff09;VMware Fusion安装 这里就不再阐述如何安装啦&#xff01;当然这也不是本文关注重点&#xff01; M2 VMware Ub…

VB写dll以及调用的具体实例

目录 一.dll的简介 二.VB6中的dll 1.常见的调用的方法: 2.通过vb6写dll&#xff1a; 3.dll的调用 三.出现的一些问题: 一.dll的简介 1.dll被称为动态链接库,是一个可由多个程序或其他dll调用用的代码和的库&#xff0c;使用dll可以让程序可以更加模块化&#xff0c;避免重…

自适应布局和响应式布局

写在前面 我们在开发的时候&#xff0c;经常会听到关于各种布局的概念&#xff0c;而且里面有些概念经常会混淆&#xff0c;这篇文章主要就是介绍一下静态布局、流式布局、自适应布局、响应式布局和弹性布局的特点和应用场景 布局的历史发展 随着互联网和相关设备的发展&#…

C#语言实例源码系列-鼠标设置

专栏分享点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册 &#x1f449;关于作者 众所周知&#xff0c;人生是一个漫长的流程&#xff0c;不断克服困难&#xff0c;不断反思前进的过程。在这个过程中…

DDL(保姆级教学)

目录 DDL&#xff1a; 1、数据库的创建&#xff1a; 2、由于重复创建同名数据库会报错 3、注意如果默认字符集为Latin1,其不支持中文&#xff0c;所以改为&#xff1a; 数据库的创建&#xff1a; 数据表的创建 属性的数据类型 1、数值类型&#xff1a; 2、字符串类型&a…

离散数学-用以图转化为矩阵并且求出这个矩阵的最大度最小度

题目: 从键盘输入无向图的邻接矩阵&#xff0c;判断输出该图结点最大度数、最小度数。 问题的分析&#xff1a; 对于一个图的输入&#xff0c;你一定会去使用二维数组来进行数据的存储&#xff0c;那么第一步就是建立一个二维数组&#xff0c;然后来进行输入&#xff0c;我下…

广域网技术——SRv6隧道类型及数据转发

目录 SRv6节点 节点角色 节点行为 SRv6数据转发隧道建立方式 SRv6 BE L3VPNv4 over SRv6 BE EVPN L3VPNv6 over SRv6 BE SRv6 TE Policy SRv6使用IPv6数据平面&#xff0c;基于IPv6扩展头进行扩展实现类似标签转发的处理 SR-MPLS在建立SR-MPLS隧道时&#xff0c;如果有…

Windows版本的Redis(新版本的GitHub地址)

Redis通常被称为数据结构服务器&#xff0c;因为值&#xff08;value&#xff09;可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型 Redis官网地址&#xff1a;Redis 关于Windows版本 Redis目前提供源码、Docker镜像、云版三种下载形…

利用@Retryable注解实现重试机制

Retryable 它可以作用在方法上&#xff0c;当方法抛出指定的异常时&#xff0c;整个方法将会被重新执行。在使用时需要先在pom.xml中导入相关依赖&#xff0c;再在启动类中添加EnableRetry注释以开启重试功能&#xff0c;最后在相应的方法上添加Retryable注释。 引入依赖 <…

【边缘检测】蚁群算法图像边缘检测【含Matlab源码 1189期】

⛄一、获取代码方式 获取代码方式1&#xff1a; 完整代码已上传我的资源&#xff1a;【边缘检测】基于matlab蚁群算法图像边缘检测【含Matlab源码 1189期】 获取代码方式2&#xff1a; 通过订阅紫极神光博客付费专栏&#xff0c;凭支付凭证&#xff0c;私信博主&#xff0c;可…

12.17 - 每日一题 - 408

每日一句&#xff1a; 我们生活在行动中&#xff0c;而不是生活在岁月里;我们生活在思想中&#xff0c;而不是生活在呼吸里。 数据结构 1 在有向图G的拓扑序列中&#xff0c;若顶点Vi在顶点Vj之前&#xff0c;则下列情形不可能出现的是______ A.G中有弧<Vi,Vj>B.G中有…

sqli-labs 通关笔记详解 Less1 - Less10

文章目录GET显错注入流程前置知识注入步骤GET盲注基本流程前置知识注入步骤Less - 1Less - 2Less - 3Less - 4Less - 5Less - 6Less - 7Less - 8Less - 10做sqli-labs靶场之前建议补一下基础 SQL注入简介和注入方法教学 Web安全基础-SQL MySQL SQLMAP工具 详细使用方法 GET显…

动态规划问题——换钱的最少货币数

题目&#xff1a; 给定数组arr&#xff0c;arr中所有的值都为正数且不重复。每个值代表一种面值的货币&#xff0c;每种面值的货币可以使用任意张&#xff0c;在给定一个整数aim&#xff0c;代表要找的钱数&#xff0c;求组成aim的最少货币数。 示例&#xff1a; arr [5,2,…

自动生成MySQL DDL建表语句

简介项目中大部分情况下都是使用MySQL数据&#xff0c;而且主要使用的数据库类型是char、varchar、date、datetime、timestamp、int、tinyint等几种常见的数据类型&#xff1b;而且进行表设计时&#xff0c;一般都要出一份表设计文档&#xff0c;例如表设计模板如下因为有了如此…

[附源码]Nodejs计算机毕业设计基于移动端的药方收集系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

【Spring】一文带你吃透IOC容器技术

目录 一、前言 二、IOC容器技术 1、ioc概念 2、DI依赖注入 2.1、构造注入依赖 2.2、setter注入依赖 3、ioc底层实现 4、基于xml配置声明Bean以及使用 4.1、根节点标签beans 4.2、声明Bean 4.3、Bean的使用 5、面向接口编程 5.1、新增接口IOrderService 5.2、Order…

非零基础自学Golang 第11章 文件操作 11.2 文件基本操作 11.2.2 文件读取

非零基础自学Golang 文章目录非零基础自学Golang第11章 文件操作11.2 文件基本操作11.2.2 文件读取第11章 文件操作 11.2 文件基本操作 11.2.2 文件读取 想要读取文件可以使用os库中的Read接口&#xff1a; func (f &#xff0a;File) Read(b []byte) (n int, err error)Re…

RCNN网络源码解读(Ⅳ) --- 训练SVM二分类模型的准备过程

目录 1.回忆上一讲及本讲我们要做什么 2.回顾finetune是怎么训练的&#xff08;finetune.py&#xff09; 3. 训练SVM二分类模型 &#xff08;linear_svm.py&#xff09; 3.1 load_data 3.2 custom_classifier_dataset.py 3.3 custom_batch_sampler.py 3.4 hinge_loss 1…

python制作问题搜索解答器,从此学习无忧

前言 大家早好、午好、晚好吖 ❤ ~ 今天博主给大家带来一个问题搜索解答器&#xff01;&#xff01; 需要素材 以及一双慧手和一个灵活的脑子~ 效果展示 代码展示 导入模块 import requests import tkinter as tk from tkinter import ttk import webbrowserdef search(wor…