当前位置: 首页 > news >正文

第十四届蓝桥杯编程题部分代码题解

C. 冶炼金属

最大值就是取 a/ba / ba/b 的最小值,最小值就是二分找到满足 mid∗(bi+1)≥aimid * (b_i + 1) ≥ a_imid(bi+1)ai 的最小值

#include<bits/stdc++.h>
#define int long long
#define x first
#define y second
using namespace std;void solve()
{int n;cin >> n;vector<pair<int, int>> a(n);for (int i = 0; i < n; i++) cin >> a[i].x >> a[i].y;int l = 0, r = 1e9;auto check = [&](int mid){for (int i = 0; i < n; i++)if (mid * (a[i].y + 1) <= a[i].x) return false;return true;};while (l < r){int mid = l + r >> 1;if (check(mid)) r = mid;else l = mid + 1;}cout << l << ' ';int minn = 1e9;for (int i = 0; i < n; i++)minn = min(minn, a[i].x / a[i].y);cout << minn << '\n';
}signed main()
{// freopen("Sample.in", "r", stdin);ios::sync_with_stdio(false);cin.tie(0);int T = 1;// cin >> T;while (T--) solve();// cout << "Time:" << (double)clock() / 1000 << '\n';return 0;
}

D. 飞机降落

全排列枚举所有降落方案,然后判断即可

#include<bits/stdc++.h>
#define int long long
#define x first
#define y second
using namespace std;void solve()
{int n;cin >> n;vector<int> t(n + 10), d(n + 10), l(n + 10);for (int i = 0; i < n; i++) cin >> t[i] >> d[i] >> l[i];vector<int> p(n);for (int i = 0; i < n; i++) p[i] = i;do {int tt = 0;bool flag = true;for (int i = 0; i < n; i++){int x = p[i];if (tt > t[x] + d[x]){flag = false;break;}tt = max(tt, t[x]);tt += l[x];}if (flag) {cout << "YES" << '\n';return;}} while (next_permutation(p.begin(), p.end()));cout << "NO" << '\n';
}signed main()
{// freopen("Sample.in", "r", stdin);ios::sync_with_stdio(false);cin.tie(0);int T = 1;cin >> T;while (T--) solve();// cout << "Time:" << (double)clock() / 1000 << '\n';return 0;
}

E. 接龙数列

状态定义:f[i,j]f[i, j]f[i,j] 为前 iii 个数,以 jjj 结尾的最长合法子序列,答案就是 n−maxn - maxnmax

#include<bits/stdc++.h>
#define int long long
#define x first
#define y second
using namespace std;void solve()
{int n;cin >> n;map<int, int> mp;vector<int> a(n);vector<pair<int, int>> b(n);for (int i = 0; i < n; i++) cin >> a[i];for (int i = 0; i < n; i++){b[i].y = a[i] % 10;int x = a[i];while (x >= 10) x /= 10;b[i].x = x;}int ans = 0;for (int i = 0; i < n; i++){int x = mp[b[i].x];mp[b[i].y] = max(mp[b[i].y], x + 1);ans = max(ans, mp[b[i].y]);}cout << n - ans << '\n';
}signed main()
{// freopen("Sample.in", "r", stdin);ios::sync_with_stdio(false);cin.tie(0);int T = 1;// cin >> T;while (T--) solve();// cout << "Time:" << (double)clock() / 1000 << '\n';return 0;
}

F. 岛屿个数

考场上没什么思路,随便写了个Flood Fill就润了

G. 字串简写

处理 bbb 的前缀和,然后扫一遍即可

#include<bits/stdc++.h>
#define int long long
#define x first
#define y second
using namespace std;void solve()
{int k;cin >> k;string s;char a, b;cin >> s >> a >> b;int n = s.size();s = " " + s;vector<int> B(n + 10);for (int i = 1; i <= n; i++)if (s[i] == b) B[i] ++;for (int i = 1; i <= n; i++) B[i] += B[i - 1];int ans = 0;for (int i = 1; i <= n; i++){if (s[i] == a){if (i + k - 1 > n) continue;ans += B[n] - B[i + k - 2];}}cout << ans << '\n';
}signed main()
{// freopen("Sample.in", "r", stdin);ios::sync_with_stdio(false);cin.tie(0);int T = 1;// cin >> T;while (T--) solve();// cout << "Time:" << (double)clock() / 1000 << '\n';return 0;
}

H. 整数删除

首先初始化下每个数的前驱和后继

开一个小根堆,把所有数的大小和位置都放进去

每次循环,拿到数组中最小的数,标记上位置,然后操作它和它的前驱后继

但是可能拿到的数,已经被改变过了,所以我们需要开一个 mapmapmap ,记录下每个位置被改变过多少次

最后把没有被标记的数输出即可

#include<bits/stdc++.h>
#define int long long
#define x first
#define y second
using namespace std;void solve()
{int n, k;cin >> n >> k;vector<int> a(n + 10);for (int i = 1; i <= n; i++) cin >> a[i];vector<pair<int, int>> b(n + 10);for (int i = 1; i <= n; i++) b[i] = {i - 1, i + 1};priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> heap;for (int i = 1; i <= n; i++) heap.push({a[i], i});map<int, int> mp;vector<bool> st(n + 10);for (int i = 0; i < k; i++){while (mp[heap.top().y]){mp[heap.top().y] --;heap.pop();}auto t = heap.top();heap.pop();st[t.y] = true;int l = b[t.y].x, r = b[t.y].y;b[l].y = r, b[r].x = l;a[l] += t.x, a[r] += t.x;mp[l] ++, mp[r] ++;if (l) heap.push({a[l], l});if (r <= n) heap.push({a[r], r});}for (int i = 1; i <= n; i++)if (!st[i]) cout << a[i] << ' ';
}signed main()
{// freopen("Sample.in", "r", stdin);ios::sync_with_stdio(false);cin.tie(0);int T = 1;// cin >> T;while (T--) solve();// cout << "Time:" << (double)clock() / 1000 << '\n';return 0;
}

写在最后

剩下两题都是LCA好像,不太会,导游暴力Floyd骗分,最后一题没读完题,输出样例后就选择去检查了,上述几题都过了民间数据了,应该问题不大,很好啊,好像省一稳了?噢,原来有人赛时没开long long没关同步流啊,为什么没呢?很简单啊,怕过不了编译,然后就真忘了,我是傻逼

相关文章:

第十四届蓝桥杯编程题部分代码题解

C. 冶炼金属 最大值就是取 a/ba / ba/b 的最小值&#xff0c;最小值就是二分找到满足 mid∗(bi1)≥aimid * (b_i 1) ≥ a_imid∗(bi​1)≥ai​ 的最小值 #include<bits/stdc.h> #define int long long #define x first #define y second using namespace std;void sol…...

统一结果封装异常处理

统一结果封装&异常处理2&#xff0c;统一结果封装2.1 表现层与前端数据传输协议定义2.2 表现层与前端数据传输协议实现2.2.1 环境准备2.2.2 结果封装步骤1:创建Result类步骤2:定义返回码Code类步骤3:修改Controller类的返回值步骤4:启动服务测试3&#xff0c;统一异常处理3…...

数字藏品平台的发展趋势是什么?

1、数字藏品平台具体内容生产模式将在PGC&#xff08;专业生产制造具体内容&#xff09;方式向PUGC&#xff08;技术专业用户生产内容&#xff09;方式变化。 目前&#xff0c;中国热门的数字藏品平台都在PGC模式中持续发展的&#xff0c;而国外流行NFT平台则比较多选用UGC&am…...

Vue3对话框(Dialog)

Vue2对话框&#xff08;Dialog&#xff09; 可自定义设置以下属性&#xff1a; 标题&#xff08;title&#xff09;&#xff0c;类型&#xff1a;string | slot&#xff0c;默认 提示 内容&#xff08;content&#xff09;&#xff0c;类型&#xff1a;string | slot&#xf…...

【深度强化学习】(5) DDPG 模型解析,附Pytorch完整代码

大家好&#xff0c;今天和各位分享一下深度确定性策略梯度算法 (Deterministic Policy Gradient&#xff0c;DDPG)。并基于 OpenAI 的 gym 环境完成一个小游戏。完整代码在我的 GitHub 中获得&#xff1a; https://github.com/LiSir-HIT/Reinforcement-Learning/tree/main/Mod…...

unity,Color.Lerp函数

介绍 Color.Lerp函数是Unity引擎中的一个静态函数&#xff0c;用于在两个颜色值之间进行线性插值&#xff0c;从而实现颜色渐变效果 方法 Color.Lerp函数是Unity引擎中的一个静态函数&#xff0c;用于在两个颜色值之间进行线性插值&#xff0c;从而实现颜色渐变效果。该函数的…...

洛谷P8799 [蓝桥杯 2022 国 B] 齿轮 C语言/C++

[蓝桥杯 2022 国 B] 齿轮 题目描述 这天&#xff0c;小明在组装齿轮。 他一共有 nnn 个齿轮&#xff0c;第 iii 个齿轮的半径为 rir_{i}ri​, 他需要把这 nnn 个齿轮按一定顺序从左到右组装起来&#xff0c;这样最左边的齿轮转起来之后&#xff0c;可以传递到最右边的齿轮&a…...

景区在线售票系统功能开发介绍

目前游客线上订票已经普及&#xff0c;景区开通线上购票渠道&#xff0c;方便游客购票&#xff0c;对于还没有开通线上购票的景区来说&#xff0c;需要提前了解一下景区线上售票系统的一些功能&#xff0c;下面给大家详细介绍一下景区在线售票需要哪些功能。 1、在线售票 包含门…...

webService的底层调用方式

webservice中采用协议Http&#xff0c;是指什么意思 WebService使用的是 SOAP (Simple Object Access Protocol)协议 Soap协议只是用来封装消息用的。封装后的消息你可以通过各种已有的协议来传输&#xff0c;比如http,tcp/ip,smtp,等等&#xff0c;你甚至还一次用自定义的协议…...

关于文件的一些小知识下

&#x1f34d;个人主页&#x1f34d;:&#x1f51c;勇敢的小牛儿&#x1f6a9; &#x1f531;推荐专栏&#x1f531;&#xff1a;C语言知识点 ⚠️座右铭⚠️&#xff1a;敢于尝试才有机会 &#x1f412;今日鸡汤&#x1f412;&#xff1a; 你受的苦 吃的亏 担的责 扛的罪 忍的…...

使用Cheat Engine与DnSpy破解Unity游戏

题目连接&#xff1a; https://play.picoctf.org/practice/challenge/361?originalEvent72&page3我们是windows系统&#xff0c;所以点击windows game下载游戏 双击运行pico.exe 屏幕上方的一串英文是叫我们找flag&#xff0c;我在这个小地图里走来走去也没flag&#xff…...

溯源取证-内存取证基础篇

使用工具&#xff1a; volatility_2.6_lin64_standalone 镜像文件&#xff1a; CYBERDEF-567078-20230213-171333.raw 使用环境&#xff1a; kali linux 2022.02 我们只有一个RAW映像文件&#xff0c;如何从该映像文件中提取出我们想要的东西呢&#xff1f; 1.Which volatili…...

Leetcode.100 相同的树

题目链接 Leetcode.100 相同的树 easy 题目描述 给你两棵二叉树的根节点 p和 q&#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 示例 1&#xff1a; 输入&#xff1a;p [1,2,3…...

每个程序员都应该知道的8大算法

在编程开发中&#xff0c;算法是用于解决特定问题或完成特定任务的一组指令或过程。算法可以用任何编程语言表示&#xff0c;可以像一系列基本操作一样简单&#xff0c;也可以像涉及不同数据结构和逻辑的多步骤过程一样复杂。 算法的主要目标是接收输入、处理它并提供预期的输…...

Nestjs实战超干货-概况-模块-Modules

模块 模块就是一个声明了装饰器Module()的类。装饰器Module()提供了元数据&#xff0c;以便让Nest组织应用程序结构。 每个应用程序至少有一个模块&#xff0c;即根模块。根模块是 Nest 用来构建应用程序图的起点&#xff0c;应用程序图是 Nest 用来解析模块和提供者关系和依赖…...

template

模板 模板注意事项 模板的函数体和声明一定要在一起&#xff0c;即放在同一个.h文件中&#xff0c;而不能将其分开到cpp和h文件中模板的编译技巧就是尽量多编译&#xff0c;模板很难查找错误模板的报错一般只有第一行有作用模板指定类型从左到右依次指定 模板推导 #pragma #…...

innovus中时序路径debug及命令使用详解?

写在前面&#xff1a;发现place结果所有与outport相关的timing check都找不到&#xff1f; 刚开始怀疑是sdc约束问题&#xff0c;check了input sdc文件及enc.dat/mmmc/mode/func.sdc 看一下是否设置了set_false_path.当然也可以用命令报出来: report_timing -unconstrained …...

C语言爱心代码大全集—会Ctrl+C就可以表白了

一、C语言爱心代码大全&#xff0c;会CtrlC就可以表白了&#xff01; 博主整理了一个C语言爱心代码大全&#xff0c;里面有C语言爱心代码会动的动态效果和C语言爱心代码大全静态效果&#xff0c;只需复制粘贴就可以用啦&#xff01; 1、动态C语言爱心代码效果图如下&#xff…...

python+vue+django耕地信息管理系统的设计与实现

基普通用户模块含有个人中心、耕地信息管理、转让许可申请管理、租赁许可申请管理等功能&#xff1b;普通管理员模块含有个人中心、用户管理、公示公告管理、耕地信息管理、耕地信息统计、转让许可申请管理、租赁许可申请管理、转让协议管理、租赁协议管理等功能&#xff1b;管…...

【云原生】Dockerfile制作WordPress镜像,实现compose编排部署

文章目录&#x1f479; 关于作者前言环境准备目录结构dockerfile制作镜像yum 脚本Dockerfile-mariadb 镜像Dockerfile-service 镜像docker compose 编排提升✊ 最后&#x1f479; 关于作者 大家好&#xff0c;我是秋意临。 &#x1f608; CSDN作者主页 &#x1f60e; 博客主页…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象&#xff0c;只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意&#xff1a;它移动的位置必须是相连的有内容的单元格…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...