挑战杯刷题

news2024/11/27 20:26:12

字符串相关

字符串相关:

插入元素:
str.insert(pos,num,string);//pos是待查入的位置,num是插入几次,string是待插入的字符串
str.insert(pos,string);//与上面insert一样,不过只在pos位置插入string一次
查找指定字符串在原始字符串中的位置
int pos = str.find(target);//反会target字符串,在str中的起始位置
删除某一区间的字符串
str.erase(pos,num);//删除str字符串中,从pos位置为起点,num个长度的元素
获取字符串长度
int len = str.length();
int len = str,size();

ASCII码相关
A-Z 65-90
a-z 97-122


在这里插入图片描述

思路:
主要考察对C++字符串的操作

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



int main()
{
  string s;
  cin>>s;

  int n;
  char ch;
  cin>>n;
  cin>>ch;

  while(n>0)
  {
    int i,j;
    cin>>i;
    cin>>j;

    int len = s.length();
    bool flag=false;
    int pos = 0;
    for(int k = i-1;k<j;k++)
    {
      if(s[k]==ch)
      {
        pos = k;
        flag = true;
        break;
      }
    }
    if(flag==true)
    {
     s.erase(pos,1);
    }
    else
    {
      string temp = "";
      temp+=ch;
      s = s.insert(j,temp);
    }

    n--;
  }
 cout<<s<<endl;
  return 0;
}

题目描述:
有一组均由字符AZ和az组成的字符串,其中要求将字符串中各字符按如下要求进行转换:
A<->z、B<->y、C<->x、… 、X<->c、Y<->b、Z<->a。
输入样例:Algorithm
输出样例:zOTLIRGSN

#include<bits/stdc++.h>

using namespace std;

int main()
{
string str;
cin>>str;
for(auto &cg:str)
{
	if('A'<=cg && cg<='Z')
	{
		cg = 'z'-(cg-'A');
	}
	else if('a'<=cg && cg<='z')
	{
		cg = 'Z'-(cg-'a');
	}
}
cout<<str<<endl;
}

vector相关

排序:sort(nums.begin(),nums.end());
输出某个整数的小数点后两位: printf("%.2f",a);


智能除草
农业植保无人机作为最新的设备,可以加注除草剂进行除草。每次工作可以喷洒边长为K的正方形区域。现有一块边长为N的正方形农田,将其分成N*N个方格单元,已知每个单元里的杂草数量。求该植保无人机一次工作最多可以除草的数量。

输入说明:
第一行是2个正整数,分别为N和K(1≤K≤N≤1000)。
之后N行N列正整数,表示每个单元中的杂草数量(不超过50)。
输出说明:
该植保无人机一次工作最多可以除草的数量。

输入样例:
5 2
2 2 1 1 1
1 2 1 5 6
6 1 1 4 5
2 6 1 1 1
1 1 1 1 1
输出样例:
20

按照最后一次提交的代码为评分标准

思路:
先收集农田大小
然后再遍历每个小矩阵,将小矩阵内最大和的值作为最终的结果。

#include<bits/stdc++.h>

using namespace std;

int main()
{
    int n,k;
    cin>>n;
    cin>>k;
    int max_num = 0;
    vector<vector<int>>vec(n,vector<int>(n,0));

    for(int i = 0;i<n;i++)
    {
        for(int j = 0;j<n;j++)
        {
            int temp = 0;
            cin>>temp;
            vec[i][j] = temp;
        }
    }

    for(int i = 0;i<=n-k;i++)
    {
        for(int j = 0;j<=n-k;j++)
        {
            int sum = 0;
            for(int p = 0;p<k;p++)
            {
                for(int q = 0;q<k;q++)
                {
                    sum+=vec[i+p][j+q];
                }
            }
            max_num = max(max_num,sum);
        }
    }
    cout<<max_num<<endl;
}

题目描述
小明今天收了N个鸡蛋,每个鸡蛋各有重量,现在小明想找M个重量差距最小的鸡蛋摆成一盒出售,输出符合条件的最重一盒鸡蛋的总重量.
输入说明
第一行,用空格分隔的2个整数,分别表示鸡蛋个数N(N<1000)和每盒个数M(M<N);
第二行,N个鸡蛋重量(浮点)。
输出说明
1行,符合条件的最重一盒鸡蛋的总重量(保留2位小数)
输入样例
8 4
11 9 12 5 10 19 8 6
输出样例
42.00

int main()
{
    int n,m;
    cin>>n>>m;
    vector<int>vec;
    for(int i = 0;i<n;i++)
    {
        int temp = 0;
        cin>>temp;
        vec.push_back(temp);
    }
    sort(vec.begin(),vec.end());
    double min_num = 1e8;
    unordered_map<double,double>dict;
    for(int i = 0;i<=n-m;i++)
    {
        double temp=0;
        double flag =0;
        int ans = 0;
        for(int j = i;j<i+m;j++)
        {
            temp+=vec[j];
            flag+=(vec[j]-vec[i]);
        }
        dict[flag] = temp;
        min_num = min(min_num,flag);
    }

    printf("%.2f",dict[min_num]);
}

模拟


题目描述
Excel表列名称由字母A~Z组成,列字母的规律如下:A、B、C…Z、AA、AB…AZ、BA、BB…ZZZZY、ZZZZZ…,现在请你计算2列之间含有多少列单元格。
输入样例
AA AZ
输出样例
24

思路:
先判断第一个是在第多少行
再判断第二是是在多少行
两者相减再-1

int main()
{
    string str1,str2;
    cin>>str1;
    cin>>str2;
    int res1 = 0,res2 = 0;
    for(int i = str1.size()-1,j = 1;i>=0;i--,j*=26)
    {
        res1 += (str1[i]-'A')*j;
    }
    for(int i = str1.size()-1,j = 1;i>=0;i--,j*=26)
    {
        res2 += (str2[i]-'A')*j;
    }
    int res = (res1>res2? res1-res2:res2-res1);
    cout<<res-1<<endl;
}

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

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

相关文章

[附源码]Node.js计算机毕业设计高校宿舍管理系统Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

Mac M1配置SSH Key并添加

配置SSH Key 设置github账户信息 添加github的名字和绑定的邮箱 git config --global user.name “your_name” git config --global user.email “your_emailexample.com” 查看一下 git config --global --list 如果添加成功就会显示刚才的名称和邮箱 创建 创建SSH Key s…

关于切换场景加载耗时的优化问题

1&#xff09;关于切换场景加载耗时的优化问题 ​2&#xff09;SpriteAtlas打包AssetBundle后运行时内存大小和什么有关系 3&#xff09;手机上使用MRT的限制和兼容性 4&#xff09;如何控制粒子系统组件数量的上限 这是第317篇UWA技术知识分享的推送。今天我们继续为大家精选了…

大数据-玩转数据-深入浅出K8S

一、K8S和Docker的比较 Docker 是一个开源的、轻量级的容器引擎&#xff0c;和 VMware 虚拟机相比&#xff0c;Docker 使用容器承载应用程序&#xff0c;而不使用操作系统&#xff0c;所以它的开销很少&#xff0c;性能很高。但是&#xff0c;Docker 对应用程序的隔离不如虚拟…

SO_REUSEPORT socket选项介绍以及在nginx上的配置

SO_REUSEPORT (reuseport) 是网络的一个选项设置&#xff1a; 它能开启内核功能&#xff1a;网络链接分配 内核负载均衡&#xff0c;该功能允许多个进程/线程 bind/listen 相同的 IP/PORT&#xff0c;提升了新链接的分配性能。reuseport 也是内核解决 惊群问题 的优秀方案&…

CoSENT:比sentence bert更好的向量表征

本文是对https://spaces.ac.cn/archives/8847文章的总结 有监督的文本表征主流方案是sentence bert&#xff0c;虽然sentence BERT效果还行&#xff0c;但是存在训练和预测不一致的问题&#xff0c;而一些文章也指出而如果直接优化预测目标cos值&#xff0c;效果往往特别差&…

方寸间联结世界,中国直播电商如何诠释“人类命运共同体”?

十几个人凝神屏息地盯着屏幕&#xff0c;仿佛静止了一般&#xff0c;眼睛一眨不眨&#xff0c;生怕错过了什么。直到听到屏幕另一端终于有了动静&#xff0c;悬在他们心里的石头才落下——“谢谢大家的支持&#xff0c;全部没有了。” 话音未落&#xff0c;这边已爆发了欢呼声…

只工作,不上班,「远程办公」是不是理想的工作方式?

在我们90后眼中&#xff0c;上班和工作是两回事。准确来说。上班是为别人做事&#xff0c;而工作是为自己。 圆桌派有一期的话题是“不想工作怎么破&#xff1f;”当时&#xff0c;几位嘉宾说&#xff1a;“不是不想工作&#xff0c;是不想上班”&#xff0c;“周围很多年轻人…

【linux】之 kubernetes安装

一、容器编排工具 docker machinedocker composedocker swarm docker servicedocker stack kubernetesmesosmarathon 二、PaaS平台 OpenShiftRancher 三、认识kubernetes 官方网址 https://kubernetes.io/ https://kubernetes.io/zh/ 中文社区 http://docs.kubernetes.org…

libco 宏分析

// 下面是从libco中导出的宏 #include <iostream> using namespace std;/*以下是计算参数的个数&#xff0c;最多支持7个参数 */ #define comac_get_args_cnt( ... ) comac_arg_n( __VA_ARGS__ ) #define comac_arg_n( _0,_1,_2,_3,_4,_5,_6,_7,N,...) N #define comac_a…

完整的PCB生产工艺到底是怎样的?华秋告诉你

前面&#xff0c;与朋友们分享了一些关于PCB生产工艺的事情。 有的朋友看了后非常感兴趣&#xff0c;私信说——现在的各种PCB资料满天飞&#xff0c;经常彼此间相互不一致&#xff0c;甚至对立&#xff0c;能给我们再讲讲&#xff0c;完整的PCB生产工艺到底是怎样的吗&#x…

Java 8函数式编程

函数式接口 一个接口中&#xff0c;有且只有一个抽象方法&#xff0c;这个接口就叫做函数式接口。常常使用FunctionalInterface注解作为编译校验。满足函数式接口的要求&#xff0c;才能校验通过&#xff0c;否则会在校验阶段失败。 接口中有且只能有一个抽象方法&#xff0c;…

STM32F4 | 外部中断实验

文章目录一、STM32F4 外部中断简介二、硬件设计三、软件设计四、实验现象五、STM32CubeMX 配置外部中断本章我们将介绍如何将 STM32F429 的 IO 口作为外部中断输入。一、STM32F4 外部中断简介 这里首先介绍STM32F4 IO 口中断的一些基础概念。STM32F4 的每个 IO 都可以作为外部…

实验五图形用户界面编程

目录 一、目的与任务 二、内容、要求与安排方式 三、实验设备 四、实验步骤 一、目的与任务 掌握常用事件及其处理模型&#xff1b;掌握常用GUI控制组件的使用及其事件的处理&#xff1b;掌握菜单的使用以及对话框的使用。 二、内容、要求与安排方式 1、实验内容与要求&…

SpringCloud系列(五)Nacos 注册中心配置管理的设置及使用

介绍几种 Nacos 常用的配置, 如统一配置管理的步骤, 如何配置自动刷新及多环境配置优先级问题. Nacos 配置管理⚽️ 统一配置管理⚽️⚽️配置自动刷新⚽️⚽️⚽️ 多环境配置优先级⚽️ 统一配置管理 步骤一: 在 Nacos 中添加配置信息, 如添加时间格式的配置内容; 步骤二: …

Ribbon实战与原理剖析

一、ribbon概述 1、ribbon简介 目前主流的负载方案分为以下两种&#xff1a; 集中式负载均衡&#xff0c;在消费者和服务提供方中间使用独立的代理方式进行负载&#xff0c;有硬件的&#xff08;比如 F5&#xff09;&#xff0c;也有软件的&#xff08;比如 Nginx&#xff0…

读写锁的学习与实验

目录 目录 1&#xff0c;场景 2&#xff0c;接口 3&#xff0c;场景模拟 1&#xff0c;场景 有一种场景&#xff0c;读者多&#xff0c;写者少&#xff0c;绝大多数的情况下我们都是在进行读取而不修改&#xff0c;只有少数的情况下我们才会修改。 场景一&#xff1a;比如…

解决jenkins构建失败,空间不足问题

随着构建次数过多&#xff0c;之后jenkins构建会出现空间不足的问题&#xff0c;解决方式如下&#xff1a; 目录 1.配置时&#xff0c;去除旧的构建任务 2.使用脚本&#xff0c;删除历史构建 3.清理磁盘空间 4.重新加载服务器节点 1.配置时&#xff0c;去除旧的构建任务 2…

计算机网络(自顶向下)学习笔记——路由选择算法

第五章—路由选择算法 5.1、路由的概念 路由:按照某种指标(传输延迟,所经过的站点数目等)找到一条 从源节点到目标节点的较好路径 较好路径: 按照某种指标较小的路径指标:站数, 延迟,费用,队列长度等, 或者是一些单纯指标的加权平均采用什么样的指标,表示网络使用者希望网络…

m基于优化算法的多车辆的路径规划matlab仿真,对比GA,PSO以及烟花算法

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 路径规划是运动规划的主要研究内容之一。运动规划由路径规划和轨迹规划组成&#xff0c;连接起点位置和终点位置的序列点或曲线称之为路径&#xff0c;构成路径的策略称之为路径规划。路径规划在…