第16届蓝桥杯c++省赛c组个人题解

news2025/4/16 1:31:05

偷偷吐槽:

        c组没人写题解吗,找不到题解啊

P12162 [蓝桥杯 2025 省 C/研究生组] 数位倍数

题目背景

本站蓝桥杯 2025 省赛测试数据均为洛谷自造,与官方数据可能存在差异,仅供学习参考。

题目描述

请问在 1 至 202504(含)中,有多少个数的各个数位之和是 5 的整数倍。

例如:5、19、8025 都是这样的数。

输入格式

输出格式

这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

输入输出样例

思路:

        模拟

#include<bits/stdc++.h>
using namespace std;
bool check(int x){
    int num=0;
    while(x){
        num+=x%10;
        x/=10;
    }
    if(num%5==0)return 1;
    return 0;
}
int main(){
    int ans=0;
    for(int i=1;i<=202504;++i){
        if(check(i))ans++;
    }
    cout<<ans;
}

P12163 [蓝桥杯 2025 省 C] 2025

题目描述

求 1∼20250412 中,有多少个数可以通过改变其数字顺序后含有 2025。

例如,5220、21520 可以,而 205、225、2200、222555111 则不行。

提示:要求的数就是含有至少 1 个 0、2 个 2、1 个 5 的数。

输入格式

输出格式

这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

输入输出样例

思路:

        模拟

#include<bits/stdc++.h>
using namespace std;
int a[10];
bool check(long long x){
    memset(a,0,sizeof a);
    while(x){
        a[x%10]++;
        x/=10;
    }
    if(a[0]>=1&&a[2]>=2&&a[5]>=1)return 1;
    return 0;
}
int main(){
    int ans=0;
    for(int i=1;i<=20250412;++i){
        if(check(i))ans++;
    }
    cout<<ans;
}

P12164 [蓝桥杯 2025 省 C/Python A] 2025 图形

题目背景

本站蓝桥杯 2025 省赛测试数据均为洛谷自造,与官方数据可能存在差异,仅供学习参考。

题目描述

小蓝要画一个 2025 图形。图形的形状为一个 h×w 的矩形,其中 h 表示图形的高,w 表示图形的宽。当 h=5,w=10 时,图形如下所示:

2025202520
0252025202
2520252025
5202520252
2025202520

图形的规律是:第一行用 2025 重复填入,第二行开始,每行向左移动一个字符,用 2025 重复填入。 给定 h,w,请输出对应的图形。

输入格式

输入的第一行包含两个正整数 h,w,用一个空格分隔。

输出格式

输出若干行,表示对应的图形。

输入输出样例

输入 #1复制

4 5

输出 #1复制

20252
02520
25202
52025

说明/提示

评测用例规模与约定

  • 对于 30% 的评测用例,h=1,1≤w≤20;
  • 对于 60% 的评测用例,1≤h,w≤20;
  • 对于所有评测用例,1≤h,w≤100

思路:

        模拟,顺便说一句他给的pdf差点看成带空格的

#include<bits/stdc++.h>
using namespace std;
string a[4]={"2025","0252","2520","5202"};
int h,w;
int main(){
    cin>>h>>w;
    for(int i=0;i<h;++i){
        for(int j=0;j<w;++j){
            cout<<a[i%4][j%4];
        }
        cout<<"\n";
    }
}

P12165 [蓝桥杯 2025 省 C] 最短距离

题目描述

在一条一维的直线上,存在着 n 台显示器和 n 个电源插座。老师给小蓝布置了个任务:负责将每台显示器通过电源线与一个插座相连接(每个插座最多只能给一台显示器供电);同时,老师希望所消耗的电源线的长度尽可能的少,请你帮小蓝计算下电源线的最小消耗长度为多少?

为了便于计算,你只需要考虑直线距离即可。

输入格式

输入的第一行包含一个正整数 n。

接下来 n 行,每行包含一个整数 xi​,依次表示每台显示器的坐标。

接下来 n 行,每行包含一个整数 yi​,依次表示每个插座的坐标。

输出格式

输出一行包含一个整数表示答案。

输入输出样例

输入 #1复制

2
0
1
2
3

输出 #1复制

4

说明/提示

评测用例规模与约定

  • 对于 20% 的评测用例,1≤n≤10,0≤xi​,yi​≤100;
  • 对于 40% 的评测用例,1≤n≤100,0≤xi​,yi​≤103;
  • 对于 60% 的评测用例,1≤n≤1000,0≤xi​,yi​≤105;
  • 对于 80% 的评测用例,1≤n≤10000,0≤xi​,yi​≤109;
  • 对于所有评测用例,1≤n≤50000,0≤xi​,yi​≤109。

思路:

        记得开longlong,贪心

#include<bits/stdc++.h>
using namespace std;
const int N=5e4+10;
int a[N],b[N];
int main(){
    int n;cin>>n;
    for(int i=1;i<=n;++i)cin>>a[i];
    for(int i=1;i<=n;++i)cin>>b[i];
    sort(a+1,a+1+n);
    sort(b+1,b+1+n);
    long long ans=0;
    for(int i=1;i<=n;++i){
        ans+=abs(a[i]-b[i]);
    }
    cout<<ans;
}

P12167 [蓝桥杯 2025 省 C/Python A] 倒水

题目描述

小蓝有 n 个装了水的瓶子,从左到右摆放,第 i 个瓶子里装有 ai​ 单位的水。为了美观,小蓝将水循环染成了 k 种颜色,也就是说,第 i 个瓶子和第 i+k 个瓶子里的水的颜色相同。

小蓝发现有的瓶子里的水太少了,因此他规定如果第 i 个瓶子和第 j 个瓶子中的水颜色相同并且满足 i<j,即可将任意整数单位的水从第 i 个水瓶倒出,倒入第 j 个水瓶中。小蓝想知道任意次操作后所有瓶子中的水的最小值 min{ai​} 最大可以是多少?

输入格式

输入的第一行包含两个正整数 n,k,用一个空格分隔。

第二行包含 n 个正整数 a1​,a2​,⋯,an​,相邻整数之间使用一个空格分隔。

输出格式

输出一行包含一个整数表示答案。

输入输出样例

输入 #1复制

7 3
8 5 5 2 2 3 4

输出 #1复制

3

说明/提示

样例说明

其中一种方案:

  • a1​ 往 a4​ 倒入 3 单位;
  • a2​ 往 a5​ 倒入 2 单位;
  • a3​ 往 a6​ 倒入 1 单位; 最终每个瓶子里的水:5,3,4,5,4,4,4,最小值为 3。

评测用例规模与约定

  • 对于 40% 的评测用例,1≤n,ai​≤100;
  • 对于所有评测用例,1≤n,ai​≤100000,1≤k≤n。

思路:

又是熟悉的蓝桥阅读理解,不知道能得几分,考场上写单调栈去了

只有k相同的才能给水

1 1+k 1+2k

2 2+k 3+k 等

只有前面的水杯可以给后面的水杯,后面的水杯给不了前面,如果能给就是整个区间的平均数

题目要求的是最大的最小水,也就是前面大的要给后面小的水以至于达到平均的

一个水杯加进来有两种情况, 大于等于 平均数会变大,为什么因为后面小的水他可以多给

小于 平均数会变小,与上面同理

#include<bits/stdc++.h>
using namespace std;
long long a[100005];
int main(){
    int n,k;cin>>n>>k;
    for(int i=1;i<=n;++i){
        cin>>a[i];
    }
    long long ans=12e9;
    for(int i=1;i<=k;++i){
        long long sum=a[i];
        long long num=a[i];
        int cnt=1;
        num=min(num,a[i]);
        for(int j=i+k;j<=n;j+=k){
            cnt++;
            sum+=a[j];
            if(a[j]<num){
                 num=min(num,sum/cnt);   
            }
        }
       ans=min(ans,num);
    }
    cout<<ans;
}

P12166 [蓝桥杯 2025 省 C/研究生组] 冷热数据队列

题目描述

冷热数据队列 q 可以看做由两个子队列组成:长度为 n1​ 的热数据队列 q1​ 和长度为 n2​ 的冷数据队列 q2​。当我们需要访问某个数据页 p 时:

  1. 若 p 不在队列 q 中(即既不在 q1​ 中,也不在 q2​ 中),则加载数据页 p,并插入到 q2​ 的首部。
  2. 若 p 已经在队列 q 中,则将 p 移动至 q1​ 首部。
  3. 当 q1​ 或 q2​ 队列容量不足时,会将其尾部的数据页淘汰出去。
  4. 当 q1​ 已满,但 q2​ 未满时,从 q1​ 中淘汰出的数据页会移动到 q2​ 首部。

输入格式

输入的第一行包含两个正整数 n1​,n2​,用一个空格分隔。

第二行包含一个整数 m,表示操作次数。

第三行包含 m 个正整数 v1​,v2​,⋯,vm​,表示依次访问到的数据页的编号,相邻整数之间使用一个空格分隔。

输出格式

输出两行。

第一行包含若干个整数,相邻整数之间使用一个空格分隔,依次表示 q1​ 中的数据页。

第二行包含若干个整数,相邻整数之间使用一个空格分隔,依次表示 q2​ 中的数据页。

输入输出样例

输入 #1复制

3 3
10
1 2 3 4 3 2 2 1 3 4

输出 #1复制

4 3 2
1

说明/提示

样例说明

ivi​q1​q2​
[][]
11[][1]
22[][2,1]
33[][3,2,1]
44[][4,3,2]
53[3][4,2]
62[2,3][4]
72[2,3][4]
81[2,3][1,4]
93[3,2][1,4]
104[4,3,2][1]

评测用例规模与约定

  • 对于 20% 的评测用例,1≤n1​,n2​≤10,1≤m≤10;
  • 对于 40% 的评测用例,1≤n1​,n2​≤20,1≤m≤100;
  • 对于 60% 的评测用例,1≤n1​,n2​≤100,1≤m≤1000;
  • 对于 80% 的评测用例,1≤n1​,n2​≤103,1≤m≤104;
  • 对于所有评测用例,1≤n1​,n2​≤104,1≤m≤105,0≤vi​≤104。

思路:

        模拟

#include<bits/stdc++.h>
using namespace std;
const int N = 1e4 + 10;
int n1, n2;
int m;
int q1[N], q2[N];
int tt1=-1,s1=0;
int tt2 = -1, s2 = 0;
int a[N];
int main(){
    cin >> n1 >> n2;
    cin >> m;
    for (int i = 1; i <= m;++i){
        int x;
        cin >> x;
        if(a[x]==0){
            q2[++tt2] = x;
            if(tt2-s2+1>n2){
                a[q2[s2]] = 0;
                s2++;
            }
            a[x] = 2;
        }
        else if(a[x]==1){
            int j;
            for (j = s1; j <= tt1;++j){
                if(q1[j]==x){
                    break;
                }
            }
            for (j; j < tt1;++j){
                q1[j] = q1[j + 1];
            }
            q1[tt1] = x;
        }
        else{
            int j;
            for (j = s2; j <= tt2; ++j)
            {
                if (q2[j] == x)
                {
                    break;
                }
            }
            for (j; j < tt2; ++j)
            {
                q2[j] = q2[j + 1];
            }
            tt2--;
            q1[++tt1] = x;
            a[x] = 1;
            if(tt1+1-s1>n1){
                if(tt2+1-s2<n2){
                    q2[++tt2] = q1[s1];
                    a[q1[s1]] = 2;
                }
                else {
                    a[q1[s1]] = 0;
                }
                s1++;
            }
        }
    }
    for (int i = tt1; i >= s1;i--){
        cout << q1[i]<<" \n"[i==s1];
    }
    for (int i = tt2; i >= s2; i--)
    {
        cout << q2[i] << " \n"[i == s2];
    }
    return 0;
}

P12168 [蓝桥杯 2025 省 C/Python A] 拼好数

题目描述

我们将含有不少于 6 个 6 的数视为一个好数。例如 666666、162636465666 是好数,12366666 不是好数。

给定 n 个正整数 ai​,你可以把这些数分成若干组拼起来,每组内的数可以按任意顺序拼,但一组最多只能有 3 个数。求最多可以得到多少个好数。

输入格式

输入的第一行包含一个正整数 n。

第二行包含 n 个正整数 a1​,a2​,⋯,an​,相邻整数之间使用一个空格分隔。

输出格式

输出一行包含一个整数表示答案,即最多可以得到的好数的数量。

输入输出样例

输入 #1复制

3
66 66 66

输出 #1复制

1

输入 #2复制

7
666666 16166 6696 666 6 6 6

输出 #2复制

2

说明/提示

评测用例规模与约定

  • 对于 70% 的评测用例,1≤n≤20;
  • 对于所有评测用例,1≤n≤1000,0≤ai​≤109。

思路:        

极其shi题,我看成贪心,~~一分没拿到,讨厌oi赛制~~,原来是枚举

5可以选1 2 3 4 5

4 可以选 (1,1) 2 3 4 5 

3可以选 (2,2),(2,3) 

2 可以选 (1,1)

1 只能跟别人玩

   

#include<bits/stdc++.h>
using namespace std;
int a[5];
int main(){
    int n;cin>>n;
        int ans=0;
    for(int i=1;i<=n;++i){
        int x;cin>>x;
        int cnt=0;
        while(x){
            if(x%10==6)cnt++;
            x/=10;
        }
        if(cnt>=6)ans++;
        else{
            a[cnt]++;
        }
    }
    int p=1;
    while(a[5]>0){
        while(a[p]==0&&p<=6)p++;
        a[p]--;
        a[5]--;
        ans++;
    }
    while(a[4]>0&&a[1]>=2){
        a[1]-=2;
        a[4]--;
        ans++;
    }
    p=2;
    while(a[4]>0){
        while(a[p]==0&&p<=6)p++;
        if(p==6)break;
        a[p]-=1;
        a[4]--;
        ans++;
    }
    while(a[2]>0&&a[1]>0&&a[3]>0){
        ans++;
        a[2]--;
        a[3]--;
        a[1]--;
    }
    ans+=(3*a[3]+2*a[2])/6;//因为顺序无所无,直接打乱分配
   cout<<ans;
}

P12169 [蓝桥杯 2024 省 C/Python A] 登山

题目描述

小蓝正在登山,山峰的高度构成 n 行 m 列的正整数矩阵,ai,j​ 表示第 i 行第 j 列格子 (i,j) 上的山峰的高度。小蓝以一种特别的方式进行登山,如果他此刻在第 p 行第 q 列的格子 (p,q) 上,那么下一步可以选择:

  1. 走到格子 (i,q),满足 ai,q​<ap,q​ 且 i>p;
  2. 走到格子 (i,q),满足 ai,q​>ap,q​ 且 i<p;
  3. 走到格子 (p,j),满足 ap,j​<ap,q​ 且 j>q;
  4. 走到格子 (p,j),满足 ap,j​>ap,q​ 且 j<q。

小蓝想知道,如果他依次从每一个格子开始出发,按照最优策略,他最高能到达的山峰的高度的平均值是多少?

输入格式

输入的第一行包含两个正整数 n,m,用一个空格分隔。

接下来 n 行,每行包含 m 个正整数。其中第 i 行包含 ai,1​,ai,2​,⋯,ai,m​,相邻整数之间使用一个空格分隔。

输出格式

输出一行包含一个实数表示答案,四舍五入保留正好 6 位小数。

输入输出样例

输入 #1复制

2 2
1 3
3 2

输出 #1复制

2.500000

输入 #2复制

2 3
2 4 1
4 2 5

输出 #2复制

4.166667

说明/提示

样例说明 1

除了从格子 (1,1) 出发以外,其他格子都能到达高度为 3 的山峰,(1+3+3+3)/4=2.5。

样例说明 2

每个格子能到达的高度:

44​44​45​

其中 (1,1) 可以先到达格子 (1,3) 再到达格子 (1,2)。

评测用例规模与约定

  • 对于 40% 的评测用例,1≤n,m≤102;
  • 对于所有评测用例,1≤n,m≤104,1≤n×m≤106,1≤aij​≤109。

完了,我爆搜的,可能MLE哭,不知道能不能省一

待补

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

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

相关文章

记一次InternVL3- 2B 8B的部署测验日志

1、模型下载魔搭社区 2、运行环境&#xff1a; 1、硬件 RTX 3090*1 云主机[普通性能] 8核15G 200G 免费 32 Mbps付费68Mbps ubuntu22.04 cuda12.4 2、软件&#xff1a; flash_attn&#xff08;好像不用装 忘记了&#xff09; numpy Pillow10.3.0 Requests2.31.0 transfo…

使用SSH解决在IDEA中Push出现403的问题

错误截图&#xff1a; 控制台日志&#xff1a; 12:15:34.649: [xxx] git -c core.quotepathfalse -c log.showSignaturefalse push --progress --porcelain master refs/heads/master:master fatal: unable to access https://github.com/xxx.git/: The requested URL return…

Tauri 2.3.1+Leptos 0.7.8开发桌面应用--Sqlite数据库的写入、展示和选择删除

在前期工作的基础上&#xff08;Tauri2Leptos开发桌面应用--Sqlite数据库操作_tauri sqlite-CSDN博客&#xff09;&#xff0c;尝试制作产品化学成分录入界面&#xff0c;并展示数据库内容&#xff0c;删除选中的数据。具体效果如下&#xff1a; 一、前端Leptos程序 前端程序主…

《车辆人机工程-》实验报告

汽车驾驶操纵实验 汽车操纵装置有哪几种&#xff0c;各有什么特点 汽车操纵装置是驾驶员直接控制车辆行驶状态的关键部件&#xff0c;主要包括以下几种&#xff0c;其特点如下&#xff1a; 一、方向盘&#xff08;转向操纵装置&#xff09; 作用&#xff1a;控制车辆行驶方向…

使用多进程和 Socket 接收解析数据并推送到 Kafka 的高性能架构

使用多进程和 Socket 接收解析数据并推送到 Kafka 的高性能架构 在现代应用程序中&#xff0c;实时数据处理和高并发性能是至关重要的。本文将介绍如何使用 Python 的多进程和 Socket 技术来接收和解析数据&#xff0c;并将处理后的数据推送到 Kafka&#xff0c;从而实现高效的…

Redis 哨兵模式 搭建

1 . 哨兵模式拓扑 与 简介 本文介绍如何搭建 单主双从 多哨兵模式的搭建 哨兵有12个作用 。通过发送命令&#xff0c;让Redis服务器返回监控其运行状态&#xff0c;包括主服务器和从服务器。 当哨兵监测到master宕机&#xff0c;会自动将slave切换成master&#xff0c;然后通过…

【网络安全 | 项目开发】Web 安全响应头扫描器(提升网站安全性)

原创项目,未经许可,不得转载。 文章目录 项目简介工作流程示例输出技术栈项目代码使用说明项目简介 安全响应头是防止常见 Web 攻击(如点击劫持、跨站脚本攻击等)的有效防线,因此合理的配置这些头部信息对任何网站的安全至关重要。 Web 安全响应头扫描器(Security Head…

基于PySide6与pycatia的CATIA绘图比例智能调节工具开发全解析

引言:工程图纸自动化处理的技术革新 在机械设计领域,CATIA图纸的比例调整是高频且重复性极强的操作。传统手动调整方式效率低下且易出错。本文基于PySide6+pycatia技术栈,提出一种支持智能比例匹配、实时视图控制、异常自处理的图纸批处理方案,其核心突破体现在: ​操作效…

STM32硬件IIC+DMA驱动OLED显示——释放CPU资源,提升实时性

目录 前言 一、软件IIC与硬件IIC 1、软件IIC 2、硬件IIC 二、STM32CubeMX配置KEIL配置 三、OLED驱动示例 1、0.96寸OLED 2、OLED驱动程序 3、运用示例 4、效果展示 总结 前言 0.96寸OLED屏是一个很常见的显示模块&#xff0c;其驱动方式在用采IIC通讯时&#xff0c;常用软件IIC…

泛型的二三事

泛型&#xff08;Generics&#xff09;是Java语言的一个重要特性&#xff0c;它允许在定义类、接口和方法时使用类型参数&#xff08;Type Parameters&#xff09;&#xff0c;从而实现类型安全的代码重用。泛型在Java 5中被引入&#xff0c;极大地增强了代码的灵活性和安全性。…

编程思想——FP、OOP、FRP、AOP、IOC、DI、MVC、DTO、DAO

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…

【区块链安全 | 第三十九篇】合约审计之delegatecall(一)

文章目录 外部调用函数calldelegatecallcall 与 delegatecall 的区别示例部署后初始状态调用B.testCall()函数调用B.testDelegatecall()函数区别总结漏洞代码代码审计攻击代码攻击原理解析攻击流程修复建议审计思路外部调用函数 在 Solidity 中,常见的两种底层外部函数调用方…

linux多线(进)程编程——(6)共享内存

前言 话说进程君的儿子经过父亲点播后就开始闭关&#xff0c;它想要开发出一种全新的传音神通。他想&#xff0c;如果两个人的大脑生长到了一起&#xff0c;那不是就可以直接知道对方在想什么了吗&#xff0c;这样不是可以避免通过语言传递照成的浪费吗&#xff1f; 下面就是它…

信息安全管理与评估2021年国赛正式卷答案截图以及十套国赛卷

2021年全国职业院校技能大赛高职组 “信息安全管理与评估”赛项 任务书1 赛项时间 共计X小时。 赛项信息 赛项内容 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段 平台搭建与安全设备配置防护 任务1 网络平台搭建 任务2 网络安全设备配置与防护 第二…

高并发秒杀系统设计:关键技术解析与典型陷阱规避

电商、在线票务等众多互联网业务场景中&#xff0c;高并发秒杀活动屡见不鲜。这类活动往往在短时间内会涌入海量的用户请求&#xff0c;对系统架构的性能、稳定性和可用性提出了极高的挑战。曾经&#xff0c;高并发秒杀架构设计让许多开发者望而生畏&#xff0c;然而&#xff0…

微信小程序实战案例 - 餐馆点餐系统 阶段 2 – 购物车

阶段 2 – 购物车&#xff08;超详细版&#xff09; 目标 把“加入购物车”做成 全局状态&#xff0c;任何页面都能读写在本地 持久化&#xff08;关闭小程序后购物车仍在&#xff09;新建 购物车页&#xff1a;数量增减、总价实时计算、去结算入口打 Git Tag v2.0‑cart 1. …

sql 向Java的映射

优化建议&#xff0c;可以在SQL中控制它的类型 在 MyBatis 中&#xff0c;如果返回值类型设置为 java.util.Map&#xff0c;默认情况下可以返回 多行多列的数据

Visual Studio未能加载相应的Package包弹窗报错

环境介绍&#xff1a; visulal studio 2019 问题描述&#xff1a; 起因&#xff1a;安装vs扩展插件后&#xff0c;重新打开Visual Studio&#xff0c;报了一些列如下的弹窗错误&#xff0c;即使选择不继续显示该错误&#xff0c;再次打开后任然报错&#xff1b; 解决思路&am…

【HD-RK3576-PI】Docker搭建与使用

硬件&#xff1a;HD-RK3576-PI 软件&#xff1a;Linux6.1Ubuntu22.04 1.Docker 简介 Docker 是一个开源的应用容器引擎&#xff0c;基于 Go 语言开发&#xff0c;遵循 Apache 2.0 协议。它可以让开发者将应用程序及其依赖项打包到一个轻量级、可移植的容器中&#xff0c;并在任…

【websocket】使用案例( ​JSR 356 标准)

目录 一、JSR 356方式&#xff1a;简单示例 1、引入依赖 2、注册端点扫描器 3、编写通过注解处理生命周期和消息 4、细节解读 5、总结 二、聊天室案例 方案流程 1、引入依赖 2、注册端点扫描器 3、编写一个配置类&#xff0c;读取httpsession 4、编写通过注解处理生…