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

长沙学院2023 第一次蓝桥训练题解

每道题都在洛谷上,每个题都有很详细的题解,可以先自行做,不会再看题解。

题目解析思路都写在代码中,中文题面就不单独解释题意了。

P2440 木材加工(二分答案)

链接:P2440 木材加工

解析 代码

#include<iostream>
#include<algorithm>
using namespace std;
#define ll long long
typedef long long LL;
const int N = 1e5 + 10;
ll a[N], n, k;
bool check(int x){//判断我二分的这个数适合符合要求int sum = 0;for(int i = 1; i <=n; i ++){sum += a[i] / x;//整数除法自动向下取整}/* return sum >= k;等同于if(sum >= k) return true;//该长度符合要求我能切出k甚至更多的木材满足要求else return false;*/return sum >= k;
}
int main(){cin >> n >> k;for(int i = 1; i <= n; i ++) cin >> a[i];int l = 1, r = 1e8;//定义范围while(l <= r){int mid = (l + r) >> 1;//作用等同于 (l + r) / 2if(check(mid)) l = mid + 1;else r = mid - 1;}cout << r;return 0;
}

P3817 小A的糖果(贪心)

链接:P3817 小A的糖果

解析 代码

/*
核心思想 我所做的操作 对答案的影响怎么好怎么来
吃1号的糖果只能影响2号 如果吃2号的糖果 能影响到1号和3号
*/
#include <iostream>
#include <algorithm>
using namespace std;
#define ll long long
const int N = 1e5 + 10;
ll a[N],n,x;
int main()
{ll ans = 0;cin >> n >> x >> a[1]; //先读入a[1]if(a[1] > x){//a1已经超过x,至少得将其减小至xans += a[1] - x;a[1] = x;}for(int i = 2; i <= n; i ++){cin >> a[i];if(a[i] + a[i - 1] > x){ans += a[i] + a[i - 1] - x;a[i] = x - a[i - 1];//每次保证ai小于x}}cout << ans;return 0;
}

P5638 【CSGRound2】光骓者的荣耀(前缀和)

链接:P5638 【CSGRound2】光骓者的荣耀

解析 代码

#include <iostream>
#include <algorithm>
using namespace std;
#define ll long long
const int N = 1e6 + 10;
ll a[N];
int main()
{int n, k;cin >> n >> k;for(int i=1;i<=n - 1;i++) {cin >> a[i];a[i] += a[i - 1];//前缀和}ll ans = a[n-1];for(int i = 1; i + k - 1 <= n - 1; i ++){//我们肯定不会跳到超过n号城市 i + k - 1 <= n - 1ans = min(ans, a[n - 1] - (a[i + k - 1] - a[i - 1]));}cout << ans;return 0;
}

P1115 最大子段和(贪心)

链接:P1115 最大子段和

解析 代码

#include <iostream>
#include <algorithm>
using namespace std;
const int N = 2e5 + 10;
int a[N];
int main()
{int n, sum = 0, ans = -1e4;//ans初始化为负数scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);ans = max(ans, a[i]);if(sum + a[i] <= 0) sum = 0;//sum已经是负贡献了就将这段丢弃else {sum += a[i];ans = max(ans,sum);//每次都比较一下}}printf("%d",ans);return 0;
}

标题P1090 [NOIP2004 提高组] 合并果子 (贪心)

P1090 [NOIP2004 提高组] 合并果子

解析 代码

#include <queue>
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 10010;
priority_queue<int, vector<int>, greater<int>>q;//小顶堆
int main()
{int n, x;cin >> n;for(int i = 1; i <= n; i ++){cin >> x;q.push(x);//加入队列}int ans = 0;/*每次取最小的两个果子,可以使得小果子的贡献次数多 大果子的贡献少达到花费的最小的目的*///top:取得队首 pop:将队首弹出for(int i = 1; i < n; i ++){int x1 = q.top(); q.pop();int x2 = q.top(); q.pop();ans += x1 + x2;q.push(x1 + x2);}cout << ans;return 0;
}

P1216 [USACO1.5][IOI1994]数字三角形 Number Triangles(动态规划)

链接:P1216 [USACO1.5][IOI1994]数字三角形 Number Triangles

解析 代码 (DP 版)

#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1010;
int f[N][N];
int main()
{int n;cin >> n;for(int i = 1; i <= n; i ++){//输入数字三角形for(int j = 1; j <= i; j ++){//第i行恰好有i个数字cin >> f[i][j];}}for(int i = 2; i <= n; i ++){for(int j = 1; j <= i; j ++){f[i][j] += max(f[i - 1][j], f[i - 1][j - 1]);//只可能从两个方向来,1是上方,2是左上方 取最大值}}int ans = 0;for(int i = 1; i <= n; i ++){ans = max(ans, f[n][i]);//最终的最大值肯定是最底部的某个数}cout << ans;return 0;
}

解析 代码(记忆化搜索版)

/*
建议将dfs 深度优先搜索 学会再来看这篇题解
*/
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1010;
int n, f[N][N], vis[N][N];
int dfs(int row, int col)//当前处在数字三角形的第几行第几列
{/*关键部分!因为我们从这一个数字向下搜索,那么能找到最大价值的路径是确定,不会因为前面是从别的地方来导致从这里出发找到的价值有变化,这就是dp的关键(无后效性)所以我们找到一次,就把答案记录下来,下次就不用再搜了,直接使用*/if(vis[row][col]) return f[row][col];vis[row][col] = 1; //这里我们开始寻找,就标记,下次再到这里就不用找了if(row == n) return f[row][col]; //找到最后一层就到底不用继续搜了f[row][col] += max(dfs(row + 1, col), dfs(row + 1, col + 1));//也是只有两种走法 取最大值return f[row][col];
}
int main()
{cin >> n;//输入数字三角形for(int i = 1; i <= n; i ++){for(int j = 1; j <= i; j ++) cin >> f[i][j];//第i行恰好有i个数字}cout << dfs(1, 1);return 0;
}

相关文章:

长沙学院2023 第一次蓝桥训练题解

每道题都在洛谷上&#xff0c;每个题都有很详细的题解&#xff0c;可以先自行做&#xff0c;不会再看题解。 题目解析思路都写在代码中&#xff0c;中文题面就不单独解释题意了。 P2440 木材加工&#xff08;二分答案&#xff09; 链接&#xff1a;P2440 木材加工 解析 代码…...

云端Docker搭建ABY库以及本地CLion使用

文章目录ABY的搭建以及使用前言ABY库的下载、安装及测试CLion配置后续杂项项目改名使用其他的库最后ABY的搭建以及使用 前言 仅做记录&#xff0c;仅供参考&#xff0c;不同人有不同的使用方式命令手敲&#xff0c;可能有错&#xff0c;自己辨识勿问&#xff0c;我懂的也不多…...

ES6-箭头函数、解构赋值、对象简写

箭头函数特点 1、 (只有1个形参) 可以省略() 2、 {} 可以省略 只有一句代码 或 只有返回值的时候,省略return 3、arguments 不可用&#xff0c;arguments在没有形参的时候可以拿到调用函数拿在的实参 获取伪数组通过Array.from转为真数组。 4、 箭头函数没有this&#xff0c; …...

【CSS】CSS 背景设置 ② ( 背景位置 | 背景位置-方位值设置 )

文章目录一、背景位置1、语法说明2、注意事项二、背景位置-方位值设置1、效果展示2、完整代码示例一、背景位置 1、语法说明 如果 盒子的大小 大于 背景图片的大小 , 默认的 图片 位置是 左上角 ; 设置背景位置的 CSS 语法如下 : background-position : length length backgro…...

HTML 扫盲

✏️作者&#xff1a;银河罐头 &#x1f4cb;系列专栏&#xff1a;JavaEE &#x1f332;“种一棵树最好的时间是十年前&#xff0c;其次是现在” 目录前言HTML 结构快速生成代码框架HTML 常见标签注释标签标题标签: h1-h6段落标签&#xff1a;p换行标签&#xff1a;br格式化标签…...

项目中用到的责任链模式

目录 1.什么是责任链&#xff1f;它的原理是什么&#xff1f; 2.应用场景 ​3.项目中的应用 传送门&#xff1a;策略模式&#xff0c;工作中你用上了吗&#xff1f; 1.什么是责任链&#xff1f;它的原理是什么&#xff1f; 将请求的发送和接收解耦&#xff0c;让多个接收对象…...

C++复习笔记--STL的string容器和vector容器

1--string容器string 本质上是一个类&#xff0c;其不同于指针 char*&#xff0c;string 类的内部封装了 char*&#xff0c;用于管理字符串&#xff0c;是一个 char* 型的容器&#xff1b;1-1--string构造函数string 的构造函数原型&#xff1a;string(); // 创建一个空的字符串…...

第一章 软件项目管理概述

项目(Project)是为了创造一个唯一的产品或提供一个唯一的服务而进行的临时性的努力。项目的特征PMBOK(A guide to the Project management Body Of Knowledge:项目管理知识体系指南)五大过程组和十大知识领域从时间角度出发&#xff0c;项目管理分为五大过程组&#xff1a;启动…...

【Linux系统编程】06:共享内存

共享内存 OVERVIEW共享内存一、文件上锁flock二、共享内存1.关联共享内存ftok2.获取共享内存shmget3.绑定共享内存shmat4.绑定分离shmdt5.控制共享内存shmctl三、亲缘进程间通信1.共享内存写入与读取2.共享内存解绑与删除3.共享内存综合四、非亲缘进程间通信1.通过sleep同步2.通…...

【专项】112. 路径总和

112. 路径总和 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 叶子节点 …...

【数据结构】堆排序

堆是一种叫做完全二叉树的数据结构&#xff0c;可以分为大根堆&#xff0c;小根堆&#xff0c;而堆排序就是基于这种结构而产生的一种程序算法。大堆&#xff1a;每个节点的值都大于或者等于他的左右孩子节点的值小堆&#xff1a;每个结点的值都小于或等于其左孩子和右孩子结点…...

论文阅读笔记《GAMnet: Robust Feature Matching via Graph Adversarial-Matching Network》

核心思想 本文提出一种基于图对抗神经网络的图匹配算法&#xff08;GAMnet&#xff09;,使用图神经网络作为生成器分别生成源图和目标图的节点的特征&#xff0c;并用一个多层感知机作为辨别器来区分两个特征是否来自同一个图&#xff0c;通过对抗训练的办法提高生成器特征提取…...

数据安全—数据完整性校验

1、数据安全保障三要素即 保密性 完整性、可用性机密性&#xff1a;要求数据不被他人轻易获取&#xff0c;需要进行数据加密。完整性&#xff1a;要求数据不被他人随意修改&#xff0c;需要进行签名技术可用性&#xff1a;要求服务不被他人恶意攻击&#xff0c;需要进行数据校验…...

Java 最小路径和

最小路径和中等给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。说明&#xff1a;每次只能向下或者向右移动一步。示例 1&#xff1a;输入&#xff1a;grid [[1,3,1],[1,5,1],[4,2,1]]输出&…...

Flask+VUE前后端分离的登入注册系统实现

首先Pycharm创建一个Flask项目&#xff1a; Flask连接数据库需要下载的包&#xff1a; pip install -U flask-cors pip install flask-sqlalchemy Flask 连接和操作Mysql数据库 - 王滚滚啊 - 博客园 (cnblogs.com) sqlAlchemy基本使用 - 简书 (jianshu.com) FlaskVue前后端分…...

【Go】用Go在命令行输出好看的表格

用Go在命令行输出好看的表格前言正文生成Table表头设置插入行表格标题自动标号单元格合并列合并行合并样式设置居中设置数字自动高亮标红完整Demo代码结语前言 最近在写一些运维小工具&#xff0c;比如批量进行ping包的工具&#xff0c;实现不困难&#xff0c;反正就是ping&am…...

怎么处理消息重发的问题?

消息队列在消息传递的过程中&#xff0c;如果出现传递失败的情况&#xff0c;发送方会重试&#xff0c;在重试的过程中&#xff0c;可能会产生重复的消息。 消息重复的情况必然存在 关于传递消息时能够提供的服务质量标准&#xff0c;MQTT协议给出了三种不同的标准&#xff1…...

JVM 运行时数据区(数据区组成表述,程序计数器,java虚拟机栈,本地方法栈)

JVM 运行时数据区JVM 运行时数据区3.1运行时的数据区组成概述3.1.1程度计数器3.1.2java虚拟机栈3.1.3本地方法栈3.1.4java堆3.1.5方法区3.2程序计数器3.3java虚拟机栈3.4本地方法栈JVM 运行时数据区 堆,方法区(元空间) 主要用来存放数据 是线程共享的. 程序计数器,本地方法栈…...

Oracle ASM磁盘组配置、日常运维、故障处理等操作资料汇总

ASM&#xff08;自动存储管理&#xff09;在数据库中是非常重要的组成部分&#xff0c;它可以为磁盘提供统一的存储管理、提高磁盘访问的性能和可用性、简化管理复杂度&#xff0c;从而为数据库的运行提供更好的支持。这里就为大家整理了墨天轮数据社区上一些ASM相关基础知识、…...

java对象的创建与内存分配机制

文章目录对象的创建与内存分配机制对象的创建类加载检查分配内存初始化零值设置对象头指向init方法其他&#xff1a;指针压缩对象内存分配对象在栈上分配对象在Eden区中分配大对象直接分配到老年代长期存活的对象进入老年代对象动态年龄判断老年代空间分配担保机制对象的内存回…...

MMDetection实战:如何将训练好的Faster R-CNN模型部署到视频流进行实时目标检测

MMDetection实战&#xff1a;Faster R-CNN模型在视频流中的高效部署与优化 当计算机视觉开发者完成Faster R-CNN模型的训练后&#xff0c;如何将其部署到实际视频分析场景成为关键挑战。本文将深入探讨基于MMDetection框架的模型部署全流程&#xff0c;从基础实现到高级优化技巧…...

为OpenClaw智能体工作流配置Taotoken作为后端模型供应商

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为OpenClaw智能体工作流配置Taotoken作为后端模型供应商 对于使用OpenClaw框架构建AI智能体的开发者而言&#xff0c;将后端模型服…...

XUnity.AutoTranslator完整指南:让外语游戏瞬间变中文的免费神器

XUnity.AutoTranslator完整指南&#xff1a;让外语游戏瞬间变中文的免费神器 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为语言障碍而无法畅玩海外Unity游戏吗&#xff1f;XUnity.AutoTranslator…...

系统化调试方法论:从STOP到DETECT,告别救火式排查

1. 项目概述&#xff1a;一套源自实战的系统化调试方法论如果你是一名开发者&#xff0c;或者正在和AI Agent打交道&#xff0c;大概率都经历过这种场景&#xff1a;线上服务突然报错&#xff0c;你心急火燎地登录服务器&#xff0c;看着日志里一堆堆的异常信息&#xff0c;脑子…...

AgentPulse:为AI编码助手打造macOS刘海信息中心,提升开发效率

1. 项目概述&#xff1a;为AI编码助手打造一个macOS“灵动岛”如果你和我一样&#xff0c;日常开发中重度依赖Claude Code、Cursor这类AI编码助手&#xff0c;那你一定对下面这个场景不陌生&#xff1a;你正专注地在终端里写代码&#xff0c;突然一个权限请求弹出来&#xff0c…...

M4Markets:技术架构稳健性的多角度观察

在金融服务行业不断深化的当下&#xff0c;平台的综合实力已经成为客户筛选时的关注焦点。M4Markets作为活跃在国际金融领域的服务机构&#xff0c;多年来在多个维度展现出较为突出的特点。本文将从评测视角出发&#xff0c;对其综合表现进行多维度的观察与解读&#xff0c;希望…...

构建支持多模型切换的智能内容审核与打标系统

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 构建支持多模型切换的智能内容审核与打标系统 在用户生成内容平台中&#xff0c;视频、图文等内容的审核与分类打标是核心运营环节…...

从一次内存拷贝崩溃说起:手把手教你用memcpy_s重构老旧C代码

从内存越界崩溃到安全重构&#xff1a;实战memcpy_s迁移指南 调试器突然停止在memcpy调用处&#xff0c;控制台抛出"Segmentation fault"的那一刻&#xff0c;每个C语言开发者都会心头一紧。这种由内存越界引发的崩溃在遗留代码库中尤为常见&#xff0c;就像我去年接…...

半导体行业如何应对政策不确定性:从游说策略到企业决策

1. 从一篇旧报道看半导体行业的“华盛顿困局”最近整理资料时&#xff0c;翻到一篇2012年EE Times的旧文&#xff0c;标题是《硅谷国度&#xff1a;选举后的政治僵局或将持续——SIA CEO如是说》。文章不长&#xff0c;但里面半导体行业协会&#xff08;SIA&#xff09;时任CEO…...

tokenviz:量化你的AI编程助手使用习惯,生成GitHub风格热力图

1. 项目概述&#xff1a;你的AI编码助手使用报告作为一名每天和代码打交道的开发者&#xff0c;我发现自己越来越依赖AI编程助手了。从最初的Copilot补全&#xff0c;到后来深度使用Cursor、Claude Code&#xff0c;这些工具已经成了我工作流中不可或缺的一部分。但用久了&…...