牛客周赛 Round 5

news2024/11/26 17:41:38
# 游游的字母变换

在这里插入图片描述在这里插入图片描述

题目大意

对给定的字符串进行变换,将大写字母变为下一个字母,小写字母变为上一个字母,其他字符不做变换。

思路分析

  • 如果字符是大写字母,则判断是否为’Z’,如果是则变为’A’,否则将其加1。
  • 如果字符是小写字母,则判断是否为’a’,如果是则变为’z’,否则将其减1。

时间复杂度

O(n)

AC代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string s;
    cin>>s;
    for(int i=0;i<s.size();i++)
    {
        if(isupper(s[i])){ 
        s[i]=s[i]=='Z'?'A':s[i]+1; 
        }else if(islower(s[i])){ 
            s[i]=s[i]=='a'?'z':s[i]-1;
        }
    }
    cout<<s<<endl; 
    return 0;
}

游游的排列构造

在这里插入图片描述在这里插入图片描述

题目大意

构造一个长度为n的排列,其中有k个"好元素",并且任意两个好元素都不相邻。好元素的定义是,对于第i个元素a[i]而言,a[i]是前i个元素的最大值。

思路分析

先将最大的k个数按间隔和顺序放置在数组中。
然后,将剩下的数按顺序填充到数组的空位中。

时间复杂度

O(n)

AC代码

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

int main(){
    int n,k;
    cin>>n>>k;
    vector<int> a(n); 
    int x=n-k+1; // 第一个好元素的值
    for(int i=0;i<k;i++){
        a[2*i] =x;
        x++;
    }
    int cnt = 1; 
    // 填充其他位置
    for(int i=0;i<n;i++){
        if(a[i]==0){
            a[i] =cnt;
            cnt++;
        }
    }
    for(int i=0;i<n;i++){
        cout<<a[i]<<" ";
    }
    cout<<endl;
    return 0;
}

游游的二进制树

在这里插入图片描述在这里插入图片描述

题目大意

题目给出了一棵树,每个节点有一个权值为0或者1。路径表示二进制数。现在需要计算有多少条路径代表的二进制数在[l,r]区间范围内。

思路分析

可以使用深度优先搜索(DFS)来解决这个问题。从根节点开始遍历树的每一条路径,并将路径上的节点权值拼接起来得到对应的二进制数。如果该二进制数在[l,r]范围内,则计数器加1。

  • 定义dfs函数,参数包括当前节点编号u,父节点编号fa,当前路径代表的二进制数mid。
  • 将当前节点的权值加入mid中,并判断mid是否大于r,若是则退出递归。
  • 如果父节点存在且mid大于等于l,则将计数器ans加1。
  • 遍历当前节点的所有相邻节点v,若v不等于父节点fa,则递归调用dfs(v, u, mid)。
  • 在主函数中,遍历所有节点,以每个节点作为起点调用dfs函数。

时间复杂度

O(n2)

AC代码

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
vector<long long> a[N];
string s; 
long long n, l, r, ans;
//深度优先搜索函数
void dfs(int u, int fa, long long x)
{
    x= x * 2 + s[u - 1] - '0'; // 每次加上该点位的权值
    if (x> r) return; //如果x大于r,则退出
    if (fa && x>= l) ans++; //如果fa不为0且mid大于等于l,则ans加一
    for (int v : a[u]) 
    {
        if (fa == v) continue; //如果fa等于v,则跳过当前循环
        dfs(v, u, x); 
    }
}

int main()
{
    cin >> n >> l >> r >> s; 
    for (int i = 1; i < n; i++) 
    {
        int x, y; 
        cin >> x >> y;
        a[x].push_back(y);
        a[y].push_back(x);
    }
    for (int i = 1; i <= n; i++) 
        dfs(i, 0, 0); 
    cout << ans << endl; 
}

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

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

相关文章

国内物流园区数字化改革趋势

随着科技的进步和物流业的发展&#xff0c;数字化技术在物流园区的应用逐渐普及。数字化管理和物联网技术使得物流园区的运营更加智能化、高效化&#xff0c;并提供更优质的服务&#xff0c;本文和大家一起了解一下国内物流园区数字化改革现状和进程。 国内数字化园区数字化改…

【C++】模拟实现string

目录 &#x1f31e;专栏导读 &#x1f31b;定义string类 &#x1f31b;构造函数 &#x1f31b;拷贝构造函数 &#x1f31b;赋值函数 &#x1f31b;析构函数 &#x1f31b;[]操作符重载 &#x1f31b;c_str、size、capacity函数 &#x1f31b;比较运算符重载 &#…

CuratorFramework接口的作用和使用

CuratorFramework接口是Apache Curator库中的核心接口之一&#xff0c;用于与ZooKeeper集群进行交互。它提供了一组丰富的方法和功能&#xff0c;用于简化与ZooKeeper的交互操作&#xff0c;包括创建、删除、读取和更新节点等。 CuratorFramework接口的主要作用是封装了底层与…

uni-app:实现列表单选功能

效果图&#xff1a; 核心解析&#xff1a; 一、 <view class"item_all" v-for"(item, index) in info" :key"index"><view classposition parameter-info text-over :classitem.checked?"checked_parameter":""…

【华秋推荐】物联网入门学习模块 ESP8266

随着全球信息技术的不断进步和普及&#xff0c;物联网成为当今备受关注的技术热点之一。通过物理和数字设备之间的连接来实现自动化和互联互通的网络。无线传感器、云计算和大数据分析等技术&#xff0c;物联网使设备能够相互交流和共享信息&#xff0c;实现智能化的自动化操作…

从k8s 的声明式API 到 GPT的 提示语

命令式 命令式有时也称为指令式&#xff0c;命令式的场景下&#xff0c;计算机只会机械的完成指定的命令操作&#xff0c;执行的结果就取决于执行的命令是否正确。GPT 之前的人工智能就是这种典型的命令式&#xff0c;通过不断的炼丹&#xff0c;告诉计算机要怎么做&#xff0…

真的能缓解焦虑和负面情绪的一个技巧——进度条

我之前博客——https://blog.csdn.net/qq_41517071/article/details/129793252 负面情绪原因 当代负面情绪无法及时下线&#xff0c;导致情绪出现帮倒忙的情况。此情况主要由两种原因导致&#xff1a;①无发泄出口。人类社会身不由己&#xff0c;无法找到合适的发泄出口。②…

【超细节】Vue3组件事件怎么声明,defineEmits与emit

目录 前言 一、基本语法 1. 子组件触发 2. 父组件监听 二、 事件参数 1. 传值 2. 接收值 三、 事件校验 四、注意事项 前言 组件事件是 Vue 组件之间进行通信的一种方式。它允许一个组件触发一个自定义事件&#xff0c;并且其他组件可以监听并响应这个事件。 一、基本…

1308. 方程的解(隔板法)

题目链接&#xff1a;https://www.acwing.com/activity/content/problem/content/1761/ 本题需要用高精度 Code #include <cstring> #include <iostream> #include <algorithm>using namespace std;const int N 150;int k, x; int f[1000][100][N];int qm…

Docker实战-如何去访问Docker仓库?

导语   仓库在之前的分享中我们介绍过,它主要的作用就是用来存放镜像文件,又可以分为是公共的仓库和私有仓库。有点类似于Maven的中央仓库和公司内部私服。 下面我们就来介绍一下在Docker中如何去访问各种仓库。 Docker Hub 公共镜像仓库 Docker Hub 是Docker官方提供的最…

基于JAVA SpringBoot和HTML校园二手商城系统设计

随着网络技术的飞跃&#xff0c;人类的社会生活和现代信息技术呈现出不断融合的趋势&#xff0c;生活中的日常账单支付、网上购物、网上学习和娱乐等。二手交易平台应运而生&#xff0c;其主要目的是充分交换人们闲置的产品。你可以在交易平台上发布二手商品&#xff0c;然后有…

promise中then和catch同时调用

promise同时执行then和catch 之前一直对promise中的then函数和catch有误区&#xff0c;以为resolve就直接走then&#xff0c;reject走catch&#xff0c;但在最近项目中遇到了then和catch同时触发。 下面我们来看一组例子 let count 0const func async () > {countComput…

CAD中快速加载卫星影像的免费插件

在对GIS矢量地图数据进行处理的工作中&#xff0c;我们经常会将卫星影像插入到CAD中作为底图&#xff0c;从而便于与矢量地图数据进行叠加对比&#xff0c;但怎样才能将带坐标的卫星影像快速插入到CAD中呢&#xff1f; CAD中卫星影像与矢量数据叠加 这里分享一个可以在CAD中加…

jacoco多版本报告合并

jacoco提供了一个merge命令可以给我方便的合并代码无变更时的报告&#xff0c;但是一旦代码发生变化&#xff0c;则无法通过jacoco进行直接合并&#xff0c;原因在《jacoco的多次代码提交merge分析》中已经说明&#xff0c;那么针对一次功能测试&#xff0c;势必会进行多轮&…

【C语言进阶(1)】数据存储

文章目录 Ⅰ 数据类型介绍⒈类型的基本分类 Ⅱ 整形在内存中的存储⒈原码、反码、补码⒉大小端介绍及判断大小端 Ⅲ 浮点型在内存中的存储⒈浮点数在内存中的存储规则⒉IEEE 754 对 M 和 E 的存取规定⒊解释前面的题目 Ⅰ 数据类型介绍 基本内置类型 类型类型名称char字符数据…

玄子Share - Mybatis 项目模板使用指南

玄子Share - Mybatis 项目模板使用指南 项目结构图 mybatis-config.xml 配置模板设置 参数 <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "https://mybatis.…

pycharm运行pytest无法实时输出信息

需要去掉控制台输出。根据查询相关信息显示pycharm运行pytest无法实时输出信息&#xff0c;需要去掉pycharm里面的运行模式&#xff0c;点击减号&#xff0c;再点击加号&#xff0c;添加python执行文件即可实时输出信息。 问题描述&#xff1a; 使用pycharm运行代码时&#x…

24考研数据结构-树与森林

目录 5.4树、森林5.4.1树的存储结构1. 双亲表示法(顺序存储)&#xff1a;2. 孩子表示法(顺序链式)3. 孩子兄弟表示法&#xff08;链式&#xff09; 5.4.2树、森林与二叉树的转换5.4.3树、森林的遍历1. 树的遍历先根遍历后根遍历层序遍历&#xff08;队列实现&#xff09; 2. 森…

LeetCode-26-删除有序数组中的重复项

一&#xff1a;题目描述&#xff1a; 给你一个 升序排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯…

AI相机“妙鸭相机”原理分析和手动实现方案

妙鸭相机 一个通过上传大约20张照片&#xff0c;生成专属自拍。在2023年7月末爆火&#xff0c;根据36Kr报道&#xff0c;妙鸭相机系阿里系产品&#xff0c;挂靠在阿里大文娱体系下&#xff0c;并非独立公司。 使用方法是上传20张自拍照片&#xff0c;之后可以选择模板生成自己…