牛客周赛Round48

news2025/1/13 7:32:26

第一题 A-小红的整数自增

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

小红拿到了三个正整数。她准备进行若干次操作,每次操作选择一个元素加1。小红希望最终三个数相等,请你帮小红求出最小的操作次数。

思路:这道题比较简单,因为操作只能加1,所以只能是这三者中的最大值为终点,

但是如果操作可以加一和减一难度,难度就会有上升一个档次

#include<iostream>
using namespace std;
int main(){
    int a,b,c;
    cin>>a>>b>>c;
    cout<<3*max(a,max(b,c))-(a+b+c);
}

第二题 小红的伪回文子串(easy)

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

定义一个字符串的“伪回文值”是:修改最少字符数量使得其变成回文串的修改次数。例如,"abca"的伪回文值是1。任何回文串的伪回文值是0。

现在小红拿到了一个字符串,她希望你求出所有连续子串的伪回文值之和。你能帮帮她吗?

 这道题刚开始的数据量不大,可以用模拟,暴力解决

#include<iostream>
#include<string>
using namespace std;
int rtn(string str){
    int len=str.length(),i,ans=0;
    for(i=0;i<len;i++){
        if(str[i]==str[len-i-1]){
            ans++;
        }
    }
    if(len==1) return 1;
    else       return ans;
}
int main(){
    string str;
    cin>>str;
    int len=str.length();
    int ans=0;
  for(int i=0;i<str.size();i++)
  for(int j=1;j<=((str.substr(i)).size());j++)
      ans+=(str.substr(i,j).size()-rtn(str.substr(i,j)))/2;
    cout<<ans;
}

可是这样做法在第四题一个都过不了,所以得更改一下做法

#include<iostream>
#include<string>
#define int long long
using namespace std;
int sum[200009][28];
signed main(){
    string s;
    cin>>s;
    int ans = 0;
    for(int i=0;i<s.length();i++){
        for(int j=0;j<28;j++){
            if(i==0) continue;
            sum[i][j] = sum[i-1][j];
        }
        sum[i][s[i]-'a']++;
    }
    int n = s.length();
    for(int i=0;i<s.length();i++){
        if(i<=s.length()/2){
            for(int j=0;j<28;j++){
                if(j==s[i]-'a') continue;
                ans+=(sum[n-i-1][j]-sum[i][j])*(i+1);
            }
        }else{
            for(int j=0;j<28;j++){
                if(j==s[i]-'a') continue;
                ans+=(sum[i][j]-sum[n-i-1][j])*(n-i);
            }
        }
    }
    cout<<ans<<endl;
}

第三题 小红的01串取反

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

小红拿到了两个长度相等的01串。她每次操作可以选择第一个字符串的相邻两个字符进行取反。小红想知道需要能否使得两个字符串相同?
请给出一个操作方案。

 这道应该是就当前来说,先遍历,如果遇到不一样的,就立马修改,如果最后这两个字符串最后还是不相等,就输出-1,(单独拿出长度1 和  2的情况)(也可以不用)

#include<iostream>
#include<vector>
using namespace std;
int main(){
    int n;
    cin>>n;
    string a;
    string b;
    cin>>a>>b;
    if(n==1){
        if(a==b){
            cout<<0;
        }
        else{
            cout<<-1;
        }
    }
    else if(n==2){
        if(a==b){
            cout<<0;
        }
        else{
            if(a[0]!=b[0] && a[1]!=b[1]) cout<<1;
            else  cout<<-1;
        }
    }
    else{
        int ans=0;
        vector<pair<int,int> >arr;
        for(int i=0;i<n-1;i++){
            if(a[i]!=b[i]) {
                a[i]=b[i];
                a[i+1]=(a[i+1]=='0')?'1':'0';
                arr.push_back({i+1,i+2});
            }
        }
        if(a==b){
            cout<<arr.size()<<endl;
            for(auto s:arr){
                cout<<s.first<<" "<<s.second<<endl;
            }
        }
        else{
            cout<<-1;
        }
    } 
    
}

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

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

相关文章

Spring Boot + WebSocket 实现 IM 即时通讯

文章目录 1. 项目环境准备2. 配置WebSocket3. 创建消息处理器4. 创建消息类5. 创建前端页面6. 启动应用并测试7. 分析与扩展结论 &#x1f389;欢迎来到SpringBoot框架学习专栏~ ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;✨博客主页&#xff1a;IT陈寒的博客&#x1f388;…

优选算法刷题笔记 2024.6.10-24.6.20

一、双指针算法(快慢指针,对撞指针) 艹&#xff0c;CSDN吞了我是十三题笔记&#xff01;&#xff01;&#xff01; 二、滑动窗口(滑动窗口) 1、找到字符串中所有字母异位词 class Solution {public List<Integer> findAnagrams(String s, String p) {int[] hash1 new in…

示例:WPF中应用DependencyPropertyDescriptor监视依赖属性值的改变

一、目的&#xff1a;开发过程中&#xff0c;经常碰到使用别人的控件时有些属性改变没有对应的事件抛出&#xff0c;从而无法做处理。比如TextBlock当修改了IsEnabled属性我们可以用IsEnabledChanged事件去做对应的逻辑处理&#xff0c;那么如果有类似Background属性改变我想找…

Kimichat使用案例026:AI翻译英语PDF文档的3种方法

文章目录 一、介绍二、腾讯交互翻译TranSmart https://transmart.qq.com/三、沉浸式翻译三、谷歌网页翻译一、介绍 短的文章,直接丢进kimichat、ChatGPT里面很快就可以翻译完成,而且效果很佳。但是,很长的PDF文档整篇需要翻译,怎么办呢? 二、腾讯交互翻译TranSmart https…

Kafka中的数据本身就是倾斜的,使用FlinkSQL该如何处理

又是经历了一段不太平的变动&#xff0c;最近算是稳定了点&#xff0c;工作内容又从后端开发转换成了sql boy&#xff0c;又要开始搞大数据这一套了。不同的是之前写实时任务的时候都是用的java代码&#xff0c;新环境却更加偏向与使用flink sql 解决&#xff0c;所以记录下使用…

Rsync未授权访问-vulfocus

1.原理 Rsync是linux上文件传输的协议&#xff0c;如果有返回直接可以看到&#xff0c;部分主机使用协议的时候不会加密码&#xff0c;就容易造成未授权访问漏洞 2.复现 打开vulfocus.io,搜索rsync关键字&#xff0c;打开环境 在自己的主机上去连接远程服务器&#xff1a; r…

BFS:解决多源最短路问题

文章目录 什么是多源最短路问题&#xff1f;1.矩阵2.飞地的数量3.地图的最高点4.地图分析总结 什么是多源最短路问题&#xff1f; 多源最短路问题&#xff08;Multi-Source Shortest Path Problem&#xff0c;MSSP&#xff09;是图论中的一个经典问题&#xff0c;它的目标是在…

正则表达式,linux文本三剑客

正则表达式匹配的是文本内容&#xff0c;linux的文本三剑客都是针对文本内容&#xff0c;按行进行匹配 文本三剑客&#xff1a; grep 过滤文本内容 sed 针对文本内容进行增删改查 awd 按行取列 一.grep命令 作用就是使用正则表达式来匹配文本内容 -m 数字&#xff1a;匹配…

VMware与windows的共享文件夹没找到怎么办?

如果这样子添加&#xff0c;在ubuntu中还是没能找到。开机后有的时候仍然未发现共享文件夹。 二、解决办法 使用如下指令&#xff1a; sudo mount -t fuse.vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other /mnt/hgfs/ 是挂载点&#xff0c;也可以指定其它挂载点 -o allow_other…

第14章. GPIO简介

目录 0. 《STM32单片机自学教程》专栏 14.1 GPIO基本结构 14.1.1 保护二极管 14.1.2 上拉、下拉电阻 14.1.3 施密特触发器 14.1.4 P-MOS 管和 N-MOS 管 14.1.5 输出数据寄存器 14.1.6 输入数据寄存器 14.2 GPIO工作模式 14.2.1 输入模式 14.2.1.1 输入浮空模式 1…

Nginx自定义错误页面配置

Nginx错误页面包括404 403 500 502 503 504等页面&#xff0c;只需要在server中进行如下配置即可&#xff1a; error_page 404 500 502 503 504 /50x.html;location /50x.html {root /usr/share/nginx/html;}注意&#xff1a; /usr/local/nginx/html/ 路径下必须有50x.ht…

Node.js版Selenium WebDriver教程

目录 介绍 导言 Selenium基础 环境设置 使用npm安装selenium-webdriver模块 配置和管理浏览器驱动器 下载火狐 下载安装 webDriver 第一个WebDriver脚本 介绍 导言 在当今数字化时代&#xff0c;Web应用程序的质量和性能至关重要。为了确保这些应用的可靠性&#xf…

国产大模型技术创新分析

国产模型百舸争流&#xff0c;技术创新百花齐放 2023年下半年起&#xff0c;国内大模型领域迎来“百模大战”&#xff0c;各大厂商纷纷加速生成式AI的研发与突破&#xff0c;模型持续迭代升级&#xff0c;展现了人工智能技术的蓬勃发展与无限潜力。 中国大模型市场迅猛发展&am…

SpringBoot-注解@ImportResource引入自定义spring的配置xml文件和配置类

1、注解ImportResource 我们知道Spring的配置文件是可以有很多个的&#xff0c;我们在web.xml中如下配置就可以引入它们&#xff1a; SprongBoot默认已经给我们配置好了Spring&#xff0c;它的内部相当于已经有一个配置文件&#xff0c;那么我们想要添加新的配置文件怎么办&am…

SQL-Python

师从黑马程序员 数据库介绍 数据库就是存储数据的库 数据组织&#xff1a;库->表->数据 数据库和SQL的关系 MySQL的基础命令 SQL基础 SQL语言的分类 SQL的语法特征 DDL-库管理 show DATABASES;use sys;SELECT database();CREATE DATABASE test CHARSET utf-8;SHOW D…

【Orange Pi 5与Linux编程编程】-POSIX消息队列

Linux系统中的POSIX消息队列编程 文章目录 Linux系统中的POSIX消息队列编程1、POSIX 消息队列2、Linux 中的 POSIX 消息队列命名3、POSIX 消息队列调用3.1 mq_open, mq_close3.2 mq_timed_send、mq_send、mq_timed_receive、mq_receive3.3 mq_notify3.4 mq_unlink3.5 mq_getatt…

SpringCloud - 微服务

1、微服务介绍 参考&#xff1a; 微服务百度百科 1.1 概念 微服务&#xff08;或称微服务架构&#xff09;是一种云原生架构方法&#xff0c;在单个应用中包含众多松散耦合且可单独部署的小型组件或服务。 这些服务通常拥有自己的技术栈&#xff0c;包括数据库和数据管理模型&…

可视化大屏开发系列——DataV的使用

以下内容为近期个人学习总结&#xff0c;若有错误之处&#xff0c;欢迎指出&#xff01; 可视化大屏开发系列——DataV的使用 一、介绍二、注意事项1、技术支持2、兼容性3、状态更新 三、实现效果四、使用&#xff08;在vue2项目中&#xff09;1.npm安装2.main.js中引入3.开启愉…

昇思25天学习打卡营第5天|网络构建

一、简介&#xff1a; 神经网络模型是由神经网络层和Tensor操作构成的&#xff0c;mindspore.nn提供了常见神经网络层的实现&#xff0c;在MindSpore中&#xff0c;Cell类是构建所有网络的基类&#xff08;这个类和pytorch中的modul类是一样的作用&#xff09;&#xff0c;也是…

LVGL8.3动画图像(太空人)

LVGL8.3 动画图像 1. 动画图像本质 我们知道电影属于视频&#xff0c;而电影的本质是将一系列动作的静态图像进行快速切换而呈现出动画的形式&#xff0c;也就是说动画本质是一系列照片。所以 lvgl 依照这样的思想而定义了动画图像&#xff0c;所以在 lvgl 中动画图像类似于普…