2023环翠区编程挑战赛小学组题解

news2025/7/13 10:03:23

T1. 乘车费用

题目描述

星期天上午小红乘出租车去本市的奶奶家。出租车计价方案为: 3 3 3公里以内(包括 3 3 3公里)起步价是 13 13 13元,超过 3 3 3公里之后按 2.3 2.3 2.3元/公里计价,整个乘车途中另加 1 1 1元钱的燃油费。

已知:小红到奶奶家的路程为 N N N 公里,请你计算一下小红到奶奶家的出租车费用是多少元?

输入格式

输入一个整数 N N N,表示路程

输出格式

输出一个整数表示乘车 N N N公里后,出租车的费用(要求四舍五入保留整数),单位:元。

输入样例1

2

输出样例1

14

输入样例2

15

输出样例2

42

数据范围

对于 20 % 20\% 20%的数据 1 ≤ N ≤ 3 1 ≤ N ≤ 3 1N3
对于 100 % 100\% 100%的数据 1 ≤ N ≤ 30 1 ≤ N ≤ 30 1N30 ,其中存在 30 % 30\% 30%的数据需要考虑四舍五入。

代码实现

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin >> n;
    int ans = 14; //3公里以内13,燃油费1
    if(n > 3) {
        int x = (n - 3) * 2.3 + 0.5; //+0.5处理四舍五入
        ans += x;
    }
    cout << ans;
    return 0;
}

T2. 竞争对手

题目描述

邻近高考,学校组织了一系列的考试,对每场考试的排名进行前后对比,以此来调动学生学习的积极性。

在经过了 2 场考试后,为了更好的提高学生的积极性,学校希望能够找出每位学生的竞争对手,使他们能够在竞争中一起成长。

竞争对手的定义:

2 2 2场考试的过程中只要2位学生的名次存在超过或被超过的情况,就认为他们是竞争对手。

例如第一场考试排名为 1   2   i   3   j   4   5 1\ 2\ i\ 3\ j\ 4\ 5 1 2 i 3 j 4 5 i i i 排在 j 的前面,第二场考试排名为 1   2   j   3   i   4   5 1\ 2\ j\ 3\ i\ 4\ 5 1 2 j 3 i 4 5 j j j 排在 i i i的前面那么我们认为 i i i j j j 为竞争对手。

请帮学校找出一共有几对竞争对手。

输入格式:

第一行,输入整数 n n n ,表示考生人数;
接下来 2 行,每行 n n n 个数,第 i i i 行的第 j j j 个数表示为第 i i i 场考试的第 j j j 名的学生排名(编号 1 − n 1-n 1n 之间);

输出格式:

输出一个整数,表示有几对竞争对手。

输入样例1:

5
3 4 5 2 1
2 3 4 1 5

输出样例1:

4

样例1解析
学生 1 1 1,第一场考试 2 , 3 , 4 , 5 2,3,4,5 2345排在 1 1 1的前面,第二场考试 5 5 5排在 1 1 1的后面,所以 ( 1 , 5 ) (1,5) 15是竞争对手;
学生 2 2 2,第一场考试 3 , 4 , 5 3,4,5 345排在2的前面,第二场考试 1 , 3 , 4 , 5 1,3,4,5 1345排在 2 2 2的后面,所以 ( 2 , 3 ),( 2 , 4 ),( 2 , 5 ) (2,3),(2,4),(2,5) 23),(24),(25是竞争对手;
学生 3 3 3,第一场考试前面没人,第二场考试 2 2 2排在 3 3 3的前面,所以 ( 3 , 2 ) (3,2) 32是竞争对手;
学生 4 4 4,第一场考试 3 3 3排在 4 4 4的前面,第二场考试 2 , 3 2,3 23排在 4 4 4的前面,所以 ( 4 , 2 ) (4,2) 42是竞争对手;
学生 5 5 5,第一场考试 3 , 4 3,4 34排在前面,第二场考试 1 , 2 , 3 , 4 1,2,3,4 1234排在 5 5 5的前面,所以 ( 5 , 1 ),( 5 , 2 ) (5,1),(5,2) 51),(52是竞争对手;
重复的不算,像 ( 3 , 2 ) (3,2) 32 ( 2 , 3 ) (2,3) 23算一个,一共有 ( 1 + 3 + 1 + 1 + 2 ) ÷ 2 = 4 (1+3+1+1+2)\div 2 = 4 1+3+1+1+2÷2=4 对 。

数据范围:

对于 30 % 30\% 30%的数据, 1 ≤ n ≤ 10 1 ≤ n ≤ 10 1n10
对于 70 70% 70的数据, 1 ≤ n ≤ 200 1 ≤ n ≤ 200 1n200
对于 100 100% 100的数据, 1 ≤ n ≤ 5000 1 ≤ n ≤ 5000 1n5000

代码实现

#include <bits/stdc++.h>
using namespace std;
const int N = 5010;
int a[N], b[N];
int main()
{
    int n, x;
    cin >> n;
    //第一次考试
    for(int i = 1; i <= n; i ++) {
        cin >> x; 
        a[x] = i; //x同学考了第i名
    }
    //第二次考试
    for(int j = 1; j <= n; j ++) {
        cin >> x;
        b[x] = j;//x同学考了第j名
    }
    int ans = 0;
    //枚举第i名同学和第j名同学
    for(int i = 1; i <= n; i ++) {
        for(int j = 1; j <= n; j ++)
        {
            //如果第一次考试i在j后,而第二场考试i在j前
            //或者第一次考试i在j前,而第二次考试i在j后
            if(a[i] > a[j] && b[i] < b[j] || a[i] < a[j] && b[i] > b[j]) 
            {
                //cout << "(" << i << "," << j << ")" << endl; 
                ans ++;
            }
        }
    }
    
    cout << ans / 2;
    return 0;
}

T3. 魔法数制

题目描述

魔法世界的数学发展的和人类世界不一样,在创造数制的时候,魔法先知用无穷大符号 ∞ ∞ 代替了 0 0 0,这也给后人们带来了许多烦恼。

先知制定的魔法世界数制规则如下:

  • 每个位可用 ∞ ∞ 1..9 1..9 1..9,其大小比较规则为 1 < 2 < . . . < 9 < ∞ 1<2<...<9<∞ 1<2<...<9<
  • 每个数由 n n n个位组成,默认前面都是 ∞ ∞ ,比如 n = 5 n=5 n=5时, 123 实际是 ∞ ∞ 123 123实际是∞∞123 123实际是∞∞123
  • 在这个数制里,最小数是 111...11 111...11 111...11( n n n个),编号为 1 1 1;其次是 111...12 111...12 111...12( n n n个),编号为 2 2 2;最大数是 ∞ . . . ∞ ∞...∞ ∞...∞( n n n个),编号为 1 0 n 10^n 10n
  • 数制没有符号位,也即所有的数都是正的

现在你理解魔法数制了吗? 对于给定的 n n n和长度 < = n <=n <=n的一个数,求出该数在 n n n位魔法数制里的编号吧。

提示: ∞ ∞ utf8字符,占用 3 3 3个字节

输入格式:

第一行一个数字 n n n,表示数制的长度
第二行一个长度 < = n <=n <=n位的数 x x x,由 1..9 、 ∞ 1..9、∞ 1..9组成

输出格式

一个数字,表示输入魔法数的编号(编号是十进制表示,不是魔法数制)

输入样例1:

2
15

输出样例1:

5

样例1说明:最小是 11 11 11,然后 12 、 13 、 14 、 15 12、13、14、15 12131415,编号为 5 5 5

输入样例2:

2
5

输出样例2:

95

样例2说明: 5 = ∞ 5 5=∞5 5=∞5,前面是 11..1 ∞ 11..1∞ 11..1∞ 21..2 ∞ 21..2∞ 21..2∞,…, 91..9 ∞ 91..9∞ 91..9∞ ∞ 1 、 ∞ 2 、 ∞ 3 、 ∞ 4 ∞1、∞2、∞3、∞4 ∞1∞2∞3∞4,编号为 95 95 95.

数据范围:

样例1: n = 1 n=1 n=1
样例2: n = 2 n=2 n=2
样例3-4: n < = 5 n<=5 n<=5,输入数长度 = n =n =n x x x里只有 1..9 1..9 1..9
样例5-7: n < = 10 n<=10 n<=10 x x x里只有 1..9 1..9 1..9
样例8-10: n < = 18 n<=18 n<=18 x x x里有 1..9 1..9 1..9 ∞ ∞

代码实现

#include <bits/stdc++.h>
using namespace std;
const int N = 50;
char a[N];
int b[N];
int main()
{
    int n, s, m = 0;
    cin >> n;
    cin >> a;
    s = strlen(a);
    //将字符串整理为数字形式,每个数字字符-1,∞替换为9
    for(int i = s - 1; i >= 0; i --)
    {
        if(a[i] >= '0' && a[i] <= '9') b[m ++] = a[i] - '1';
        else 
        {
            b[m ++] = 9;
            i -= 2;
        }
    }
    //不足n位就进行补位
    while(m < n) b[m ++] = 9;
    //整理为10进制数
    int ans = 0;
    for(int i = n - 1; i >= 0; i --) ans = ans * 10 + b[i];
    //计算编号
    cout << ans + 1 << endl;
}

T4. 图形打印

题目描述

小明今天在课上学习了矩阵,老师带着小明打印了许多花式图形,为了巩固知识老师布置了一道图形打印作业。

题目要求:输入这个整数 n n n,输出对应的图形。

图形如下:
请添加图片描述
填充规则:

  • 以中间十字为基准,例如上图就是十字大小为 n = 4 n=4 n=4的图形;
  • 十字的每个顶点都会延长两个*作为结尾,所以最后图形大小一定为 ( 2 n + 1 + 4 ) ∗ ( 2 n + 1 + 4 ) (2n+1+4) * (2n+1+4) (2n+1+4)(2n+1+4)
  • 十字的每个结尾的斜线连接的范围内,除十字都以*填充;
  • 其余位置以中间十字及斜线范围内的数填充完为基准进行*和空格交替填充。

输入格式:

输入一个整数 n n n ,表示十字大小;

输出格式:

输出对应图形;

输入样例1:

1

输出样例1:

 * * * 
* *** *
 ** ** 
**   **
 ** ** 
* *** *
 * * * 

输入样例2:

4

输出样例2:

* * * * * * *
 * * *** * * 
* * ** ** * *
 * *** *** * 
* **** **** *
 ***** ***** 
**         **
 ***** ***** 
* **** **** *
 * *** *** * 
* * ** ** * *
 * * *** * * 
* * * * * * *

数据范围:

样例1: n = 2 n=2 n=2
样例2: n = 3 n=3 n=3
样例1,3,5,7,9: n n%2=0 n
样例1-5: n ≤ 20 n ≤20 n20
样例6-10: 20 < n ≤ 100 20 < n ≤ 100 20n100

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 500;
char g[N][N];
int main()
{
    int n, m;
    cin >> n;
    m = 2 * n + 5;
    //交替填充空格和*
    int flag = n % 2;
    for(int i = 1; i <= m; i ++)
        for(int j = 1; j <= m; j ++)
        {
            if(flag) g[i][j] = ' ', flag = !flag;
            else g[i][j] = '*', flag = !flag;
        }
    //在中间部分填充*
    int mid = m / 2 + 1, c = 0;
    for(int i = 1; i <= m; i ++)
    {
        for(int j = mid - c; j <= mid + c; j ++)
            g[i][j] = '*';
            
        if(i < mid) c ++; //上半部分每次增加两个*
            else c --; //下半部分每次减少两个*
    }
    //将十字部分填充空格
    for(int i = mid - n; i <= mid + n; i ++) g[i][mid] = ' ';
    for(int i = mid - n; i <= mid + n; i ++) g[mid][i] = ' ';
    //输出图形
    for(int i = 1; i <= m; i ++)
    {
        for(int j = 1; j <= m; j ++)
        {
            cout << g[i][j];
        }
        puts("");
    }
    return 0;
}

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

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

相关文章

一篇文章带你搞懂spring6的概念、spring入门与容器IoC详解(尚硅谷笔记)

文章目录1、概述1.1、Spring是什么&#xff1f;1.2、Spring 的狭义和广义1.3、Spring Framework特点1.4、Spring模块组成1.5、Spring6特点1.5.1、版本要求2、入门2.1、环境要求2.2、构建模块2.3、程序开发2.3.1、引入依赖2.3.2、创建java类2.3.3、创建配置文件2.3.4、创建测试类…

YOLOv8模型调试记录

前言 新年伊始&#xff0c;ultralytics 公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本&#xff0c;目前支持图像分类、物体检测和实例分割任务&#xff0c;在还没有开源时就收到了用户的广泛关注。 值得一提的是&#xff0c;在博主的印象中&#xff0c;YOLO系…

【蓝桥OJ】门牌制作、七段码、成绩统计、分数

文章目录门牌制作七段码成绩统计分数总结门牌制作 小蓝要为一条街的住户制作门牌号。这条街一共有 2020位住户&#xff0c;门牌号从 1 到 2020 编号。小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符&#xff0c;最后根据需要将字符粘贴到门牌上&#xff0c;例如门牌 1017 …

OpenHarmony ArkTS 框架下如何自定义权限

系统有很多权限&#xff0c;比如:多媒体权限 ohos.permission.READ_MEDIA 那么&#xff0c;当我们在做开发板定制hap 时需要我们自定义的特殊权限&#xff0c;该如何做呢&#xff0c;比如要做个ohos.permission.MY_TEST_PERMISSION自定义权限&#xff0c;我的思路就是&#x…

黑马程序员-Linux网络编程-01

目录 课程链接 协议 分层模型 网络传输数据封装流程 以太网帧和ARP请求 IP协议 TCP协议 BS与CS模型对比 套接字 网络字节序 IP地址转换函数 sockaddr地址结构 socket模型创建流程 socket()和bind() listen()和accept()​ 课程链接 03-协议_哔哩哔哩_bilibili 协…

【python学习笔记】:2种用 Python 作为小程序后端的方式

微信的小程序是一个很不错的体验&#xff0c;简单&#xff0c;上手快&#xff0c;这几天也在学习使用小程序&#xff0c;总结了2种用 Python 作为小程序后端的方式&#xff0c;供你参考。 方法一、微信的云托管[1]。 优点&#xff1a;不需要购买服务器&#xff0c;不需要域名…

Go语言环境安装与试运行

下载参考Go语言中文网https://studygolang.com/Go语言中文网下载会快一些&#xff0c;与Go官网是同步的&#xff0c;按对应操作系统下载。Windows下安装这里只展示Windows下的安装场景下载后双击文件&#xff1a;本地环境路径&#xff08;其实建议把环境都放在同一个指定目录下…

数据结构与算法:Map和Set的使用

1.搜索树 1.定义 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性质的二叉树: 若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值若它的右子树不为空&#xff0c;则右子树上所有节点的值都大于根节点的值它的左右子…

5年测试在职经验之谈:3年手工测试、2年的自动化测试,从入门到不可自拔...

毕业3年了&#xff0c;学的是环境工程专业&#xff0c;毕业后零基础转行做软件测试。 已近从事测试行业8年了&#xff0c;自己也从事过3年的手工测试&#xff0c;从事期间越来越觉得如果一直在手工测试的道路上前进&#xff0c;并不会有很大的发展&#xff0c;所以通过自己的努…

【机器学习】为什么需要对数值型的特征做归一化(Normalization)?

目录&#xff1a;为什么需要对数值型的特征做归一化&#xff1f;一、概念定义二、标准化、归一化的原因、用途2.1 原因三、数据归一化的影响四、常用的3种归一化方法4.1 归一化公式4.1.1 线性归一化&#xff08;Min-Max Scaling&#xff0c;即我们一般指的归一化&#xff09;4.…

十二、Django表单

表单 在之前的案例中&#xff0c;每次我们需要提交表单数据的时候。我们都需要去手动编辑html表单&#xff0c;根据不同的字段&#xff0c;字段名&#xff0c;进行编码。做了很多重复的部分&#xff0c;所以django提供了一个专门用来处理表单的类&#xff0c;django.forms.For…

23年PMP真的值得考吗?分析+资料分享

我觉得&#xff0c;如过是真的想学习项目管理&#xff0c;或者工作要求考PMP&#xff0c;招聘要求又的确“PMP证书”优先&#xff0c;那考一个是划算的&#xff0c;毕竟在项目管理这一块&#xff0c;PMP是专业和知名度最高的证书了。 它是由美国项目管理协会(PMI)在全球范围内推…

Java 给视频添加背景音乐 | Java工具

目录 前言 Maven依赖 环境依赖 代码 总结 前言 本文提供给视频添加背景音乐的java工具&#xff0c;一如既往的实用主义。 Maven依赖 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.1.1…

Towards Efficient Adversarial Training on Vision Transformers

视觉转换器(ViT)作为卷积神经网络(CNN)的有力替代方案&#xff0c;受到了广泛的关注。最近的研究表明&#xff0c;vit也容易受到cnn等对抗实例的攻击。为了构建健壮的vit&#xff0c;一种直观的方法是应用对抗性训练&#xff0c;因为它已被证明是实现健壮cnn的最有效方法之一。…

笔记本cpu温度多少正常?温度过高的4个常见原因

电脑CPU指的是中央处理器&#xff0c;它与电脑运行速度的快慢存在很大关系。如果电脑的处理器温度过高&#xff0c;就会影响我们电脑的运行速度&#xff0c;甚至出现蓝屏、卡顿的情况。 那么&#xff0c;对于电脑来说&#xff0c;笔记本cpu温度多少正常&#xff1f;有什么原因…

如何高效开发一个OA办公系统?

如何才能高效开发一个OA办公系统&#xff1f;这篇教你使用零代码工具从0-1搭建一个OA办公系统&#xff0c;无需代码基础&#xff0c;只要你懂业务&#xff0c;只需3步即可搭建&#xff01; 先来看看效果—— 系统模板>>https://www.jiandaoyun.com/ 整个系统包含物资管理…

2023年可穿戴智能设备三大应用领域的发展前景

科技化进程的不断推进&#xff0c;让可穿戴智能设备在智能设备市场占比逐渐增多&#xff0c;通过传感器和无线通信等技术的结合&#xff0c;为用户带来良好体验&#xff0c;为智能设备市场发展注入活力。消费类电子产品也朝着移动化、便携化、可穿戴化方向发展&#xff0c;可穿…

【蓝桥杯集训7】并查集专题(3 / 5)

目录 并查集模板 1249. 亲戚 - 并查集 837. 连通块中点的数量 - 并查集 240. 食物链 - 带权并查集 238. 银河英雄传说 - 并查集模板 活动 - AcWing int find(int x) //返回x的祖宗结点状态压缩 {if(p[x]!x) p[x]find(p[x]);return p[x]; }p[find(a)]find(b); //合并操作…

Jest使用

一、测试到底测什么 提到测试的时候&#xff0c;即使是最简单的一个代码块可能都让初学者不知所措。最常问的问题的是“我怎么知道要测试什么&#xff1f;”。如果你正在写一个 Web 应用&#xff0c;那么你每个页面每个页面的测试用户交互的方式&#xff0c;就是一个很好的开端…

技术干货!如何玩转Salesforce测试类 (Test Class)?

测试类主要用于评估其他代码片段&#xff0c;确保一切正常且可靠地运行。这可以作为一种早期预警系统&#xff0c;提醒开发人员出现了错误或问题。 不同类型的程序化测试 测试类可以分为多种不同的类型&#xff0c;这改变了我们编写测试的方式及其预期结果。对于Apex测试类&…