第十四届蓝桥杯(八题C++ 题目+代码+注解)
目录
题目一(日期统计 纯暴力):
代码:
题目二(01串的熵 模拟):
代码:
题目三(治炼金属):
代码:
题目四(飞机降落 深度搜索):
代码:
题目五(接龙数列 动态规划):
代码:
题目六(岛屿个数 广度优先):
代码:
题目七(子串简写 尺取法):
代码:
题目八(整数删除):
代码:
题目一(日期统计 纯暴力):
代码:
#include <iostream>
using namespace std;
int main()
{int array[100] = {5, 6, 8, 6, 9, 1, 6, 1, 2, 4, 9, 1, 9, 8, 2, 3, 6, 4, 7, 7,5, 9, 5, 0, 3, 8, 7, 5, 8, 1, 5, 8, 6, 1, 8, 3, 0, 3, 7, 9,2, 7, 0, 5, 8, 8, 5, 7, 0, 9, 9, 1, 9, 4, 4, 6, 8, 6, 3, 3,8, 5, 1, 6, 3, 4, 6, 7, 0, 7, 8, 2, 7, 6, 8, 9, 5, 6, 5, 6,1, 4, 0, 1, 0, 0, 9, 4, 8, 0, 9, 1, 2, 8, 5, 0, 2, 5, 3, 3};int Month[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };int ans = 0;for (int month = 1; month <= 12; ++month)//枚举月{for (int day = 1; day <= Month[month]; ++day)//枚举天{int date[8] = { 2, 0, 2, 3, month / 10, month % 10, day / 10, day % 10 };//把八位数得出int k = 0;for (int i = 0; i < 100; ++i) //遍历100个数,是否能满足有该天{if (array[i] == date[k]) //满足该位{++k;//下一位if (k == 8) //等于8,即满足该年月日,答案加一{ans++;break;}}}}}cout << ans;return 0;
}
题目二(01串的熵 模拟):
代码:
#include <iostream>//H(s)= -(0的个数)/(总长度)*log2((0的个数)/(总长度))*0的个数-(1的个数)/(总长度)*log2((1的个数)/(总长度))*1的个数
#include <algorithm>
#include <cmath>
using namespace std;
int main()
{int n = 23333333;//0出现的次数更少for (int i = 1; i < n / 2; ++i){double a = i * 1.0 / n;//0的占比double b = (n - i) * 1.0 / n;//1的占比double res1,res2;res1 = 0 - (a * log2(a) * i);//求0的部分res2 = 0 - b * log2(b) * (n - i);//求1的部分if (abs((res1+res2) - 11625907.5798) < 0.0001)//差距在0.000内{cout << i << endl;break;}}return 0;
}
题目三(治炼金属):
代码:
#include <iostream>
#include <algorithm>
using namespace std;
struct node
{int x, s;
};
bool cmp(node a, node b)//v小的排前
{return a.x / a.s < b.x / b.s;
}
int main()
{int n;cin >> n;int maxx = 1e9;node a[10100];for (int i = 1; i <= n; i++){cin >> a[i].x >> a[i].s;}sort(a + 1, a + 1 + n, cmp);//能满足所有的,且v为最大maxx = a[1].x / a[1].s;int minn = 0;for (int z = maxx; z >= 1; z--)//由最大的往前算,递减,直到有一个不满足{int flag = 0;for (int i = 1; i <= n; i++){if (a[i].x / z > a[i].s){flag = 1;minn = z;break;}}if (flag == 1)break;}cout << minn + 1 << " " << maxx;
}
题目四(飞机降落 深度搜索):
代码:
#include <iostream>
#include <vector>
using namespace std;
struct plane// 创建飞机结构体变量
{int t, d, l;
};
bool vis[15]; // true表示飞机降落,false表示飞机未降落
bool flag; // 标记是否全部安全降落
vector<plane> p(15);
int m, cnt;
void dfs(int cnt,int last) // lasttime表示此前所有飞机降落所需的单位时间
{if (cnt == m)//所有飞机都可降落{flag = true;return;}for (int i = 0; i < m; i++)//遍历所有飞机{if (!vis[i] && p[i].t + p[i].d >= last) // 还未降落且只有最迟降落时间(来的时刻+盘旋时间) > lasttime 的飞机才可以安全降落{vis[i] = true;dfs(cnt + 1, max(last, p[i].t) + p[i].l);vis[i] = false;}}
}int main()
{int T;cin >> T;while (T--){cin >> m;for (int i = 0; i < m; ++i)cin >> p[i].t >> p[i].d >> p[i].l;flag = false;dfs(0, 0);if (flag)cout << "YES" << endl;elsecout << "NO" << endl;}return 0;
}
题目五(接龙数列 动态规划):
代码:
#include <iostream>//动态规划,类0、1背包问题
#include <string>
using namespace std;
int dp[10];//第n个时以i结尾的最长接龙序列
int main()
{int n;cin >> n;string s;int m = 0;for (int i = 0; i < n; i++) {cin >> s;int x = s[0] - '0', y = s.back() - '0';//x表示该数的首字母,y表示该数的最后一个字母//除了以y结尾的,其它不变dp[y] = max(dp[x] + 1, dp[y]);//dp[x]+1表示选该数字时的最长序列,dp[y]表示不选该数字时的最长序列,继承m = max(m, dp[y]);//每次比较,记录最大值}cout << n - m << endl;return 0;
}
题目六(岛屿个数 广度优先):
代码:
#include<iostream>
#include<queue>
#include<cstring>
using namespace std;
const int N = 77;
string s[N];
int book[N][N];
int m, n, ans=0;
int dx[8] = { 0,0,1,-1,1,1,-1,-1 };
int dy[8] = { 1,-1,0,0,1,-1,1,-1 };
int check(int x,int y)//通过海水(0)是否能到达边界判断这个岛屿是否在环岛内
{queue<pair<int, int>>q;q.push({ x, y });int vis[N][N];memset(vis, 0, sizeof(vis));//访问数组,初始化为0while (!q.empty()){x = q.front().first, y = q.front().second;q.pop();if (x == 1 || x == n || y == 1 || y == m)//到边界,则不在环岛内return 1;for (int i = 0; i < 8; i++){int tx = x + dx[i], ty = y + dy[i];if (vis[tx][ty] == 1 || s[tx][ty] == '1')//边界条件continue;vis[tx][ty] = 1;q.push({ tx,ty });}}return 0;
}
void bfs(int x,int y)//遍历这个岛屿
{queue<pair<int, int>>q;q.push({ x,y });book[x][y] = 1;while (!q.empty()){x = q.front().first, y = q.front().second;q.pop();for (int i = 0; i < 4; i++){int tx = x + dx[i], ty = y + dy[i];if (tx<1 || ty<1 || tx>n || ty>m || book[tx][ty] == 1 || s[tx][ty] == '0')//边界条件continue;book[tx][ty] = 1;q.push({ tx,ty });}}
}
void solve()
{memset(book, 0, sizeof(book));//访问数组,初始为0cin >> n >> m;for (int i = 1; i <= n; i++)cin >> s[i], s[i] = " " + s[i];for(int i=1;i<=n;i++)for (int j = 1; j <= m; j++){if (book[i][j] == 0 && s[i][j] == '1')//没访问过且为陆地{bfs(i, j);if (check(i, j))//判断是否在环岛内,不在则加一ans++;}}cout << ans << endl;
}
int main()
{int T;cin >> T;while (T--){ans = 0;solve();}
}
题目七(子串简写 尺取法):
代码:
#include <iostream>//尺取法
using namespace std;
int k, t;
string s;
long long sum = 0;
int main()
{char c1, c2;cin >> k >> s >> c1 >> c2;for (int j = 0; j < s.length(); j++){if (s[j] == c1) //t记录j及以前c1的个数t++;if (s[j + k - 1] == c2) //刚好满足k之后的是否为c2sum += t;}cout << sum;return 0;
}
题目八(整数删除):
代码:
#include<iostream>
#include<vector>
#include<queue>
#include<functional>//greater降序排序,less升序排序
#define int long long
using namespace std;
typedef pair<int, int> pii;
const int N = 5e5 + 10;
int a[N], l[N], r[N], st[N];//l存左下标,r存右下标
signed main()
{int n, k;cin >> n >> k;priority_queue<pii, vector<pii>, greater<pii>> q;//最小堆排序for (int i = 0; i < n; i++){cin >> a[i];q.push({ a[i],i });//存值和下标st[i] = a[i];//存值l[i] = i - 1;r[i] = i + 1;if (r[i] == n) r[i] = -1;}while (k)//k次操作{pii t = q.top();//取对顶q.pop();if (t.first != st[t.second])//值与之前不相等,则把新值,下标存入,重新排序{q.push({ st[t.second],t.second });continue;}k--;int pos = t.second;//取该次的下标if (l[pos] >= 0) st[l[pos]] += t.first;//左加值if (r[pos] >= 0) st[r[pos]] += t.first;//右加值if (l[pos] >= 0) r[l[pos]] = r[pos];//该左边值的右下标if (r[pos] >= 0) l[r[pos]] = l[pos];//该右边值的左下标st[pos] = -1;//标记为-1,表示移除队列}for (int i = 0; i < n; i++)//不等与-1的,按序输出{if (st[i] != -1)cout << st[i] << ' ';}return 0;
}
相关文章:
第十四届蓝桥杯(八题C++ 题目+代码+注解)
目录 题目一(日期统计 纯暴力): 代码: 题目二(01串的熵 模拟): 代码: 题目三(治炼金属): 代码: 题目四(飞机降落 深度…...
HTTP协议格式详解之报头(HTTP header)、请求正文(body)
在之前文章中我们已经介绍了HTTP的首行信息,HTTP协议格式详解之首行信息解析-CSDN博客这篇文章中我们继续介绍HTTP协议的报头部分。 一、报头(HTTP header) a)请求头部(Request Headers): Host:指定服务器…...
[yolox]ubuntu上部署yolox的ncnn模型
首先转换pytorch->onnx->param模型,这个过程可以查资料步骤有点多,参考blog.51cto.com/u_15660370/6408303,这里重点讲解转换后部署。 测试环境: ubuntu18.04 opencv3.4.4(编译过程省略,参考我其他博客) 安装…...
YOLOv9改进策略 :IoU优化 | 提出一种新的Shape IoU,更加关注边界框本身的形状和尺度,对小目标检测也很友好
💡💡💡本文改进:一种新的Shape IoU方法,该方法可以通过关注边界框本身的形状和尺度来计算损失,解决边界盒的形状和规模等固有属性对边界盒回归的影响。 💡💡💡对小目标检测涨点明显,在VisDrone2019、PASCAL VOC均有涨点 《YOLOv9魔术师专栏》将从以下各个方向进…...
如何使用KST指标进行多头交易,Anzo Capital一个条件设置
在之前的文章中,我们进行分享了以下知识:什么是KST指标,以及如何进行计算KST指标。有聪明的投资者就在后台进行咨询Anzo Capital昂首资本了,我们知道这些知识有什么用呢? 当然有用了,只要理解背后的逻辑知…...
【QT进阶】第十三章QT动画类的使用QAbstractAnimation
❤️作者主页:凉开水白菜 ❤️作者简介:共同学习,互相监督,热于分享,多加讨论,一起进步! ❤️专栏目录:【零基础学QT】文章导航篇 ❤️专栏资料:https://pan.baidu.com/s/192A28BTIYFHmixRcQwmaHw 提取码:qtqt ❤️点赞 👍 收藏 ⭐再看,养成习惯 订阅的粉丝可通过…...
【机器学习】揭秘无监督学习:机器如何自我学习发现数据奥秘
无监督学习:全面解析 引言 在机器学习的众多分支中,无监督学习因其在未标记数据上发现隐藏模式的能力而独树一帜。它不依赖于事先标记的输出,而是通过分析数据本身的结构和分布来揭示内在的关系和分类。本文深入探讨无监督学习的核心概念、…...
鸿蒙(HarmonyOS)ArkTs语言基础教程(大纲)
鸿蒙(HarmonyOS)ArkTs语言基础教程 简介 ArkTS 是鸿蒙生态的应用开发语言。它在保持 TypeScript(简称 TS)基本语法风格的基础上,对 TS 的动态类型特性施加更严格的约束,引入静态类型。同时,提…...
掌握未来商机:如何利用会话式AI赢在起跑线
AI智能助手:提升工作效率的秘密武器 在这个信息爆炸的时代,内容策略成为了品牌与用户之间沟通的重要桥梁。一个有效的内容策略能够帮助品牌提升知名度,建立与目标受众的深度连接,并最终实现转化目标。内容策略不仅涉及内容的创作与…...
软考高级架构师:数据传输控制方式:程序控制方式、程序中断方式、DMA方式、通道方式、IO处理机
作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。 热门文章推荐&am…...
大模型之路2:继续趟一条小路
继续趟一条小路,可谓是充满了曲折,当然,必不可少的还是坑。 吐槽 看过的喷友,其实你看完以后,大概率也就是和我一起骂骂街,因为....我也的确没理清楚。 我也不知道做错了什么,就是运行不过去…...
打造安全医疗网络:三网整体规划与云数据中心构建策略
医院网络安全问题涉及到医院日常管理多个方面,一旦医院信息管理系统在正常运行过程中受到外部恶意攻击,或者出现意外中断等情况,都会造成海量医疗数据信息的丢失。由于医院信息管理系统中存储了大量患者个人信息和治疗方案信息等,…...
imu测试--UDP、PTP
imu测试–UDP、PTP UDP 服务器端口: nc -lu -p 52340;客服端: nc -u 192.168.101.175 52340列出linux所以的开放端口 sudo netstat -tulpn或者$ sudo ss -tulpn状态列显示端口是否处于侦听状态(LISTEN)。 在上面的命令中,标志ÿ…...
软考 系统架构设计师系列知识点之云原生架构设计理论与实践(13)
接前一篇文章:软考 系统架构设计师系列知识点之云原生架构设计理论与实践(12) 所属章节: 第14章. 云原生架构设计理论与实践 第3节 云原生架构相关技术 14.3.2 云原生微服务 1. 微服务发展背景 过去开发一个后端应用最为直接的方…...
2024多功能知识付费源码下载
多功能知识付费源码下载实现流量互导多渠道变现 源码介绍 资源变现类产品的许多优势,并剔除了那些无关紧要的元素,使得本产品在运营和变现能力方面实现了质的飞跃。多领域素材资源知识变现营销裂变独立版本。 支持:视频、音频、图文、文档…...
计算机网络——33多点访问协议
多点访问协议 多路访问链路和协议 两种类型的链路(一个子网内部链路连接形式) 点对点 拨号访问的PPP以太网交换机和主机之间的点对点链路 广播 传统以太网HFC上行链路802.11无线局域网 多路访问协议 单个共享的广播型链路 2个过更多结点同时传送&am…...
基于神经网络的人脸识别系统的设计与实现
基于神经网络的人脸识别系统的设计与实现 摘要: 随着计算技术的快速发展,人脸识别已成为身份验证、安全监控等领域的关键技术。本文旨在设计并实现一个基于神经网络的人脸识别系统,该系统能够自动地从输入图像中检测和识别出人脸。论文首先介…...
远控桌面多任务并发文件保密传输
远程桌面文件传输是一个重要的功能,大多数远控都是用的桌面程序模式,利用系统自带复制粘贴拖拽文件拷贝功能,做一个ole调用对接,可以将很多控制权交给操作系统。 但我做的是浏览器版,浏览器是沙盒原理,为了…...
探索 ZKFair 的Dargon Slayer蓝图,解锁新阶段的潜力
在当前区块链技术的发展中,Layer 2(L2)解决方案已成为提高区块链扩容性、降低交易成本和提升交易速度的关键技术,但它仍面临一些关键问题和挑战,例如用户体验的改进、跨链互操作性、安全性以及去中心化程度。在这些背景…...
open Gauss 数据库-04 openGauss数据库日志管理指导手册
发文章是为了证明自己真的掌握了一个知识,同时给他人带来帮助,如有问题,欢迎指正,祝大家万事胜意! 目录 前言 openGauss 数据库日志管理 1 实验介绍 2 实验目的 3 系统日志 3.1 运行时日志 3.2 安装卸载时日志…...
Redis性能瓶颈与安全隐患排查验证纪实
在写《Redis怎样保证数据安全?》这篇文章,我是有对redis设置密码需要哪些步骤,设置密码的性能损耗有验证的。这就涉及到要对redis的配置做修改。 开始时我是打算采用直接使用redis配置文件的方式。所以我从redis官网下载了一个默认的配置文件…...
【C/C++】C语言实现顺序表
C语言实现顺序表 简单描述代码运行结果 简单描述 用codeblocks编译通过 源码参考连接 https://gitee.com/IUuaena/data-structures-c.git 代码 common.h #ifndef COMMON_H_INCLUDED #define COMMON_H_INCLUDED#define LIST_INIT_CAPACITY 100 //!< 线性表初始化长度 #def…...
零基础快速上手:搭建类ChatGPT对话机器人的完整指南
来自:鸵傲科技开发 随着人工智能技术的飞速发展,对话机器人已经成为我们日常生活中不可或缺的一部分。它们能够实时响应我们的需求,提供便捷的服务。那么,对于零基础的朋友们来说,如何快速搭建一个类似ChatGPT的对话机…...
Java中的取余与取模运算:概念、区别与实例详解
Java中的取余与取模运算:概念、区别与实例详解 引言一、取余运算(Remainder Operation)二、取模运算(True Modulo Operation)三、区别比较四、实战应用 引言 在Java编程中,当我们提到“取余”和“取模”运算…...
Excel制作甘特图
使用Excel表格制作甘特图,可根据任务开始时间和结束时间自动计算工时,并自动用指定颜色填充横道图。 1.新建Excel文档,先设置项目基本信息,包括表格名称,这里设置为“**项目甘特图”;然后添加任务序号列&a…...
Dapr(一) 基于云原生了解Dapr
(这期先了解Dapr,之后在推出如何搭建Dapr,以及如何使用。) 目录 引言: Service Mesh定义 Service Mesh解决的痛点 Istio介绍 Service Mesh遇到的挑战 分布式应用的需求 Multiple Runtime 理念推导 Dapr 介绍 Dapr 特性 Dapr 核心…...
RESTful的优点
优点 1.通过url对资源定位,语义清晰; 2.通过HTTP谓词表示不同的操作,接口自描述; 3.可以对GET、PUT、DELETE请求重试(幂等的); 4.可以对GET请求做缓存; 5.通过HTTP状态码反映服务器端…...
网络检测与监控
1.IP sla 服务等级质量检测,思科私有,提供商与用户之间的协议 可以对带宽、延迟、丢包率、网络抖动进行检测 (1)针对icmp进行检测: r1(config)#ip sla 1 r1(config-ip-sla)#icmp-echo 12.12.12.2 source-ip 12.12…...
基于架构的软件开发方法_1.概述和相关概念及术语
1.体系结构的设计方法概述 基于体系结构的软件设计(Architecture-Based Software Design,ABSD)方法。ABSD方法是由体系结构驱动的,即指由构成体系结构的商业、质量和功能需求的组合驱动的。 使用ABSD方法,设计活动可以…...
读所罗门的密码笔记07_共生思想(中)
1. 在人工智能系统中建立信任 1.1. 人类的大脑容易被个人倾向、干扰因素和确认偏误所影响 1.2. 古莱说,然而,从不同的角度去思考事实、花更长时间来做决策的能力,可能会让人类拥有“密探”一般的智慧 1.3. 我们可以对决策进行批判性思考&a…...
wordpress伪静态 宝塔/如何制作一个宣传网页
2019独角兽企业重金招聘Python工程师标准>>> Unity中相机的应用遮罩应用: camera.cullingMask ~(1 << x); // 渲染除去层x的所有层 camera.cullingMask & ~(1 << x); // 关闭层x camera.cullingMask | (1 << x); // 打开…...
ugg网站vps主机/seo搜索引擎优化工资多少钱
1. Map对象 ES6提供了新的数据结构Map,Map结构提供了“值—值”的对应,是一种更完善的Hash结构实现。如果你需要“键值对”的数据结构,Map比Object更合适。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串…...
php网站开发实例教程/外贸推广代理
在使用双主互为主从的模式前提是互为主从的两个数据库,表的主键必须是自增的。实验步骤是在主从复制已经配置好的两台数据库上配置。说下思想吧,其实很简单就是把原来的从库当主库,把原来的主库当从库。按照主从配置的方法从前把主库当从库&a…...
青岛市住房城乡建设局网站/百度收录量查询
如果说尼尔森当初和 Twritter 达成战略合作,在美国电视市场率先推出基于 Twritter 聊天内容的收视率标准,可以说是电视市场收视率调查里程碑式的变革事件,那么最近尼尔森宣布除 Twritter 外,Facebook 和 Instagram 也加入了这一阵…...
河南省建设厅信息网站/关键词搜索名词解释
最长上升子序列的O(n*log(n))算法。 不上升子序列的个数等于最长上升子序列的长度。 #include<string.h> #include<stdio.h> #include<iostream> #include<algorithm> using namespace std; #define INF …...
wordpress国内几大主题/黄山seo公司
湖南大众传媒职业技术学院教研教改课题申 请 书基于基于“职业岗位培养模式”的《计算机应用基础》课程教学改革的研究项 目 名 称:项目主持人:______ 李 灿 辉申 请 单 位:_____ 网络传媒系通 讯 地 址: 长沙市星沙特立路5号bri_…...