蓝桥杯刷题(一)

news2025/7/28 13:31:37

蓝桥杯刷题

  • 1.单词分析
  • 2.成绩统计
  • 3.最短路
  • 4.门牌制作
  • 5.数字三角(较困难)

1.单词分析

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

我本人其实是比较讨厌操作字符的,因为比较麻烦,所以我将字符都用ascll码值表示。例如‘a’=97,‘b’=98,c=‘99’,所以b-a=1

#include<stdio.h>
#include<stdlib.h>
int main()
{
 char input;
 char arr[26]={0};//一共26个字母
 int max=0;
 int i=0;
 while((input=getchar())!='\n')//使用getchar一个一个接收字符,我也用过scanf来接收,但scanf要么是接收字符串,要么就必须每敲一个字符敲一下回车
 {
   arr[input-'a']++;//注意arr[?]是表示这个元素,不是数组
 }
 for(i=0;i<26;i++)//26个字母依次比较
 {
   if(arr[i]>arr[max])
   {
     max=i;
   }
 }
 printf("%c\n%d",max+'a',arr[max]);
 return 0;
}

2.成绩统计

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

这道题写代码很简单,主要考察输出部分,如何输出百分号并四舍五入

#include <stdio.h>

int main()
{
  int n=0,i=0,input=0,pass=0,good=0;
  scanf("%d",&n);
  int arr[10001]={0};
  for(i=0;i<n;i++)
  {
    scanf("%d",&arr[i]);//把每个成绩都用数组存起来
    if(arr[i]>=60)
    {
      pass++;
    }
    if(arr[i]>=85)
    {
      good++;
    }
  }
  printf("%.0f%%\n",(pass*100)/(n*1.0));//想变成百分比,再多加两个%就可以了
  printf("%.0f%%\n",(good*100)/(n*1.0));//0.f就是小数点后保留0位,就是四舍五入到整数了

  return 0;
}

3.最短路

在这里插入图片描述

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  printf("6");//人脑神经计算法
  return 0;
}

大神解法,反正我是看不懂…

#include <iostream>
#include <cstring>
using namespace std;
const int N=200,n=19;
int dist[N];
int g[N][N];
void add(char x,char y,int c)
{
  int a=x-'A'+1;
  int b=y-'A'+1;
  g[a][b]=g[b][a]=c;
}
bool vis[N];
int dijkstra()
{
  memset(dist,0x3f,sizeof dist);
  dist[1]=0;
  for(int i=0;i<n;i++)
  {
    int t=-1;
    for(int j=1;j<=n;j++)
    {
      if(!vis[j]&&(t==-1||dist[j]<dist[t]))
        t=j;
    }
    vis[t]=1;

    for(int j=1;j<=n;j++)
    {
      dist[j]=min(dist[j],dist[t]+g[t][j]);
    }
  }
  return dist[n];
}
int main()
{
    memset(g,0x3f,sizeof g);
    add('A','B',2);
    add('A','C',1);
    add('A','D',1);
    add('A','D',1);
    add('B','J',2);
    add('B','G',1);
    add('C','D',3);
    add('C','F',3);
    add('C','G',3);
    add('D','E',1);
    add('D','G',2);
    add('D','H',1);
    add('D','I',2);
    add('E','H',1);
    add('E','I',3);
    add('F','G',1);
    add('F','J',1);
    add('G','F',1);
    add('G','I',3);
    add('G','K',2);
    add('H','I',1);
    add('H','L',2);
    add('I','M',3);
    add('J','S',2);
    add('K','N',1);
    add('K','L',3);
    add('K','P',2);
    add('L','M',1);
    add('L','R',1);
    add('M','N',2);
    add('M','Q',1);
    add('M','S',1);
    add('N','P',1);
    add('O','P',1);
    add('O','Q',1);
    add('O','R',3);
    add('R','S',1);
    cout<<dijkstra();
  return 0;
}

4.门牌制作

在这里插入图片描述

这道题主要考两方面,一是如何得出每个数有多少个2,二是如何将每个数的2的个数相加起来

#include <stdio.h>
#include <stdlib.h>

int Count(int i)//计算每个数有多少个2
{
  if(i==0)
  {
    return 0;
  }
  if(i>0)
  {
    if(i%10==2)
    return 1+Count(i/10);
    if(i%10!=2)
    return Count(i/10);
  }
}
int main(int argc, char *argv[])
{
  int sum=0;
  int arr[20000]={0};
  int i=0;
  int j=0;
  int k=0;
  for(i=1;i<=2020;i++)
  {
    arr[j++]=Count(i);//将每个数的2的个数存入数组
  }
  for(k=0;k<j;k++)//将数组中每个数加起来
  {
     sum+=arr[k];
  }
  printf("%d",sum);
  return 0;
}

5.数字三角(较困难)

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

这道题的难点是要向左下走的次数与向右下走的次数相差不能超过 1。ps:这说的是全部过程,不是每一步

这里我们通过找规律可以发现如果是奇数行的话,那么它最后总会走到最后一行的中间。
如果是偶数行的话,那么会走到中间两个数的其中一个上

思路

这里我们分为三类(以第4行为例)
1.如果走到最左边(2),那么它肯定是从它的上右那个数字走来的(1)
2.如果走到最右边(4),那么它肯定是从它左上那个数走来的(0)
3.如果走到中间(7),那么它就可能是(8或0)走来的,我们取最大的那个,当然(4)我们也这样看,它的右上我们初始化是0,所以实际上是用(1和0)来比较

#include <stdio.h>
#include <stdlib.h>
int MAX(int a, int b)
{
    return a > b ? a : b;
}
int main()
{
    int n = 0;
    scanf("%d", &n);
    int arr[100][100]={0};
    int i = 0, j = 0;
    for (i = 0; i < n; i++)
    {
        for (j = 0; j <= i; j++)
        {
            scanf("%d", &arr[i][j]);//储存数据
        }
    }
    for (i = 0; i < n; i++)//实际上是求出从第一行到该行数值总和
    {
        for (j = 0; j <= i; j++)
        {
            if (i > 0)//从第二行开始
            {
                if (j == 0)//最右边
                {
                    arr[i][j] += arr[i - 1][j];
                }
                else if (j == i)//最左边
                {
                    arr[i][j] += arr[i - 1][j - 1];
                }
                else//中间
                {
                  arr[i][j]+= MAX(arr[i - 1][j - 1], arr[i - 1][j]);
                }
            }
        }
    }
    if (n % 2 == 1)//如果是奇数行
    {
        printf("%d\n", arr[n-1][(n-1)/2]);
    }
    else//如果是偶数行
    {
        printf("%d", MAX(arr[n-1][(n-1) / 2], arr[n-1][(n-1) / 2 + 1]));
    }
    return 0;
}

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

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

相关文章

prometheus学习

指标类型 测量型&#xff08;gauge&#xff09; 这种类型是上下增减的数字&#xff0c;本质上是特定度量的快照。常见的有CPU&#xff0c;内存&#xff0c;磁盘使用率等。对于业务上来说&#xff0c;指标可能是网站上的客户数量。 计数型&#xff08;counter&#xff09; 这…

【Final Project】Kitti的双目视觉里程计(2)重读

1.基础 ​ 纠正一个思想&#xff0c;即要具有模块化的思维&#xff0c;面对整体中模块是不要考虑其他&#xff0c;就仅考虑如何将一个类抽象出来&#xff0c;思考实现怎样的功能。前面的总结学习我认为是错误的学习方法&#xff0c;并不系统。我的目的&#xff1a;借鉴学习别人…

基于移动应用的城市公共气象服务平台的设计与实现

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

spark分布式计算框架

MapReduce是计算逻辑清晰的&#xff0c;只有两个步骤&#xff0c;任务是JVM进程级别&#xff0c;每执行到什么步骤 去申请具体的资源。 而spark根本不知道具体有几个stage&#xff0c;逻辑未知&#xff0c;每个人的job stage等根本不知道。它是默认倾向于抢占资源的&#xff0c…

C++11 条件变量

目录 条件变量 1 成员函数 wait函数 wait_for函数 wait_until函数 notify_one函数 notify_all函数 2 Demo1 sync_queue.h condition-sync-queue.cpp 3 Demo2 2-sync_queue.h 2-condition-sync-queue.cpp C/CLinux服务器开发/后台架构师【零声教育】-学习视频教程…

汇编内中断

内中断 文章目录内中断1.内中断的产生2.中断处理程序、中断向量表、中断过程3.iret指令4.除法错误中断的处理5.单步中断6.int指令7.BIOS和DOS所提供的中断例程1.内中断的产生 任何一个通用的CPU&#xff0c;都具备一种能力&#xff0c;可以在执行完当前正在执行的指令之后&…

StartDT奇点云通过CMMI5全球软件领域最高级别成熟度认证

近日&#xff0c;奇点云正式通过全球软件领域最高级别认证——CMMI 5级认证&#xff0c;标志着奇点云的软件技术研发能力、项目管理能力、质量保障能力、方案交付能力等均达到优化管理级的国际先进水平。 CMMI&#xff08;软件能力成熟度模型集成&#xff09;是国际上用于评价软…

JAVA开发(Redis的使用, redis数据类型)

Redis是一个缓存型数据库&#xff0c;或者平时就叫它缓存。它支持存储的类型有以下几种&#xff1a; string&#xff08;字符串&#xff09; hash&#xff08;哈希&#xff09; list&#xff08;列表&#xff09; set&#xff08;集合&#xff09; zset(sorted set&#xff1a;…

智慧电网解决方案-最新全套文件

智慧电网解决方案-最新全套文件一、建设背景二、思路架构三、建设方案四、获取 - 智慧电网全套最新解决方案合集一、建设背景 电力公司如今面临的紧迫需求问题似乎无穷无尽&#xff0c;例如&#xff1a;提高可靠性&#xff1b;降低成本&#xff1b;提高效率&#xff1b;满足环…

(十)C++中的左值lvalue右值rvaue

文章目录1.C中的变量名是如何存储及引用2.C中的左值与右值3.右值引用4.移动语义move函数参考文献欢迎访问个人网络日志&#x1f339;&#x1f339;知行空间&#x1f339;&#x1f339; 1.C中的变量名是如何存储及引用 int a 0;如上&#xff0c;在C中声明一个变量时&#xff0…

【0143】 System V共享内存(Shared Memory)

文章目录 1. 共享内存1.1 共享内存分类2. System V IPC密钥3. System V 共享内存调用3.1 shmget()3.2 shmat()3.3 shmdt()3.4 shmctl()4. 实战演练4.1 服务端程序代码实现4.2 客户端程序代码实现1. 共享内存 共享内存是 Linux 和其他类 Unix 系统下可用的三种进程间通信 (IPC)…

Docker下安装Zookeeper以及Kafka

一、安装Zookeeper 1. 查看Zookeeper镜像以及版本 访问Zookeeper镜像库地址 也可以通过命令docker search zookpper在命令行搜索zookeeper镜像&#xff0c;但是通过该命令无法查看远程镜像版本信息。 NAME&#xff1a;镜像名(镜像仓库源的名称) DESCRIPTION&#xff1a;对该镜…

yolov5剪枝实战2:网络剪枝原理介绍

1. 网络轻量化相关技术 网络轻量化的相关技术分类:1. 网络剪枝(Network pruning) 2. 稀疏表示(Sparse representation) 3. Bits precision(低比特表示,比如不用浮点型,使用int量化) 4. Kownledge distillation(知识蒸馏) 2. 网络剪枝 神经网络一般都是over-parameterized,…

SharePoint Integrator Delphi版

SharePoint Integrator Delphi版 SharePoint Integrator包含易于使用的组件&#xff0c;用于连接流行的SharePoint Server结构&#xff0c;如网站、列表和文档。SharePoint Integrator组件支持对SharePoint对象的访问&#xff0c;允许应用程序轻松地查询和修改列表、访问托管文…

京东发布第三季度财报员工总数近50万 “以实助实”助力高质量就业

11月18日&#xff0c;京东集团&#xff08;纳斯达克股票代码&#xff1a;JD&#xff0c;港交所股票代号&#xff1a;9618&#xff09;发布了2022年三季度业绩。其中净收入为2435亿元人民币&#xff0c;同比增速高于同期国内社会消费品零售总额3.5%的增速&#xff1b;其中&#…

【17-微服务网关之Spring Cloud GatewaySpring Cloud Gateway网关服务搭建】

一.知识回顾 【0.三高商城系统的专题专栏都帮你整理好了&#xff0c;请点击这里&#xff01;】 【1-系统架构演进过程】 【2-微服务系统架构需求】 【3-高性能、高并发、高可用的三高商城系统项目介绍】 【4-Linux云服务器上安装Docker】 【5-Docker安装部署MySQL和Redis服务】…

“知识图谱补全”术语:知识图谱补全、三元组分类、链接预测

基本简介&#xff1a; 知识图谱补全通常定义为“三元组分类”或“链接预测”任务。首先&#xff0c;一条知识在知识图谱中通常由三元组表示&#xff1a;“头实体&#xff0c;关系&#xff0c;尾实体”。三元组分类即对于给定的三元组&#xff0c;预测其正确的概率。而链接预测…

VM虚拟机卡顿、闪退一系列问题与卸载重装问题(详细版)

最新发现好多虚拟机有闪退现象&#xff0c;对此我给出一系列解决方案&#xff0c;仅供参考 一.软件问题 1.虚拟机闪退 首先&#xff0c;如果是VMware Workstation Pro也就是软件本身闪退问题&#xff0c;即还没有运行或打开系统时就已经闪退&#xff0c;说明软件有问题&…

Windows系统VirtualBox下载与安装

Windows系统VirtualBox下载与安装 一、下载&#xff1a;https://www.virtualbox.org/wiki/Downloads 1.安装包 2.扩展包&#xff08;对USB 2.0、USB 3.0、远程桌面协议 VRDP等实用功能的支持&#xff09; 二、安装 1.如果安装出现本机缺少必要包的情况&#xff0c;不要慌&am…

3.1版本【HarmonyOS 第一课】正式上线!参与学习赢官方好礼>>

【课程介绍】《HarmonyOS第一课》是跟随版本迭代不断推出的系列化课程&#xff0c;本期课程基于HarmonyOS 3.1版本的新技术和特性&#xff0c;每个课程单元里面都包含视频、Codelab、文章和习题&#xff0c;帮助您快速掌握HarmonyOS的应用开发&#xff0c;快速了解新的特性和技…