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

蓝桥杯第二十场小白入门赛

2.黛玉泡茶

我的思路代码:(但我不知道哪有错误)

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;int main(){int n,m,k,res=1;cin>>n>>m>>k;vector<int>num(n+1,0);for(int i=1;i<=n;i++) cin>>num[i];sort(num.begin()+1,num.end());int sum=m;for(int i=1;i<=k;i++){sum-=num[i];if(sum<0){sum+=m;res++;}}cout<<res<<endl;return 0;
}

正确的思路代码:

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;int main(){int n,m,k,res=0;cin>>n>>m>>k;vector<int>num(n+1,0);for(int i=1;i<=n;i++) cin>>num[i];sort(num.begin(),num.end());for(int i=1;i<=k;i++) res+=num[i];if(res%m==0)cout<<res/m<<endl;else cout<<res/m+1<<endl;return 0;
}

反思:我知道了。查看了测试用例后,我才明白,可能茶壶容量远小于一杯茶的容量,也就是说,你要倒满一杯茶,需要接好几次水壶,而我的代码中循环一次res最多也加一。后果就是,对于这类测试用例,我的循环结束了,我的sum还远远小于0,还没加成正值。

3.宝玉请安

我的错误思路代码:

#include <iostream>
#include<cmath>
using namespace std;
int main()
{int t,x1,x2,x3;int res=0;//需走的步数cin>>t;while(t--){cin>>x1>>x2>>x3;if((x2<x1&&x3<x1)||(x2>x1&&x3>x1)){if(x2>x3) res=abs(x2-x1);else res=abs(x3-x1);}else if((x2<x1&&x3>x1)||(x2>x1&&x3<x1)){if(abs(x1-x3)<abs(x1-x2)){res=abs(x1-x3)+abs(x2-x3);}else res=abs(x1-x2)+abs(x3-x2);}cout<<res<<endl;}// 请在此输入您的代码return 0;
}

正确思路代码:

#include <iostream>
#include<cmath>
using namespace std;
int main()
{int t,x1,x2,x3;int res=0;//需走的步数cin>>t;while(t--){cin>>x1>>x2>>x3;res=min(abs(x1-x2),abs(x1-x3))+abs(x2-x3);cout<<res<<endl;}// 请在此输入您的代码return 0;
}

反思:思考了好长时间,不知道自己为什么错,就是觉得自己的思路很正确,难受死了。最后看了看别人的和我相似的思路,才发现原来自己思路有漏洞,我把可能情况分两部分,一是两个目标地点在同一侧,二是不在同一侧。在同一侧的步数统计有问题,我直接判断两点谁更大,实际上应该判断两点谁离x1更远。

还学到了别人的直触本质的思路。本质上是x1到x2或x3其中一个,让后再在x2,x3之间行走。

4.贾母祝寿

我的思路代码:

#include <iostream>
#include<cmath>
#include<vector>
using namespace std;
int main()
{int n,q;long long res=0;cin>>n>>q;vector<long long>stone(n,0);while(q--){int t,x,y;cin>>t>>x>>y;if(t==1){for(int i=0;i<x;i++){stone[i]+=y;}}else {for(int i=n-1;i>=n-x;i--){stone[i]-=y;}}}for(int i=0;i<n;i++){stone[i]=abs(stone[i]);res=max(res,stone[i]);}cout<<res<<endl;// 请在此输入您的代码return 0;
}

正确思路代码:

#include <iostream>
#include<cmath>
#include<vector>
using namespace std;
int main()
{int n,q;long long res=0;cin>>n>>q;long long num1=0,num2=0;while(q--){int t,x,y;cin>>t>>x>>y;if(t==1){num1+=y;if(x==n)num2+=y;}else {num2-=y;if(x==n) num1-=y;}}res=max(abs(num1),abs(num2));cout<<res<<endl;// 请在此输入您的代码return 0;
}

反思:我的思路时间复杂度太高,O(n*m),n的数据范围是10^5,m的数据范围是10^9。

 5.清洁客房

我根本没想到用dp数组,我想用排列组合做一下,没做出来。

#include <iostream>
#include<vector>
using namespace std;
int N = 1e5+1;
int mod = 1e9 + 7;
int main()
{vector<vector<long>> dp(N, vector<long>(4,0));//前i个房间选择j种的方案类型for(int i=1;i<N;i++)dp[i][1]=9;for (int i = 2; i <N; i++) {for (int j = 2; j <= 3; j++) {dp[i][j] = (dp[i - 1][j - 1] * (10 - (j - 1))%mod  + dp[i - 1][j] * j%mod ) % mod;}}int t, n;cin >> t;while (t--) {cin >> n;cout << dp[n][3] << endl;}// 请在此输入您的代码return 0;
}

dp数组含义:dp[i][j]前i个房间选择j种等级的方案数 (i,j均从0开始)

6.宝玉与黛玉的考验

正确代码

#include<iostream>
#include<string>
using namespace std;int n, m, k;
string a, b;
long get(long a, long b) {return k * a + k * b - 2 * a * b;
}int main() {cin >> n >> m >> k >> a >> b;int mxa = 0, mxb = 0, mna = k, mnb = k, sum = 0;//滑动窗口,找出4个值、for (int i = 0; i < n; i++) {sum += a[i] - '0';if (i >= k) {sum -= a[i - k] - '0';mxa = max(sum, mxa);mna = min(sum, mna);}}sum = 0;for (int i = 0; i < m; i++) {sum += b[i] - '0';if (i >= k) {sum -= b[i - k] - '0';mxb = max(sum, mxb);mnb = min(sum, mnb);}}cout << max(max(get(mxa, mxb), get(mxa, mnb)), max(get(mna, mxb), get(mna, mnb))) << endl;return 0;
}

思路:这题看来是和数学思维相关。开始我想了遍历整个二维数组,但是很明显超时。

用数学思维来分析:设k*k区间中分别有a行,b列被选中,即长度为n的字符串中有a个1,长度为m的字符串中有b个1。那么这个区间的价值为ka-ab+kb-ab=-2(a-k/2)(b-k/2)+k^2/2。(k是常量,a,b是变量)a,b单独变化,这个表达式 的最值在a,b取到端点的时候取到最值。那么就求a,b的最大小值。求的过程用到滑动窗口。

相关文章:

蓝桥杯第二十场小白入门赛

2.黛玉泡茶 我的思路代码&#xff1a;&#xff08;但我不知道哪有错误&#xff09; #include<iostream> #include<vector> #include<algorithm> using namespace std;int main(){int n,m,k,res1;cin>>n>>m>>k;vector<int>num(n1,0…...

K 个一组反转链表

力扣第 25 题&#xff1a;K 个一组反转链表 题目描述 给定一个链表&#xff0c;将链表每k个节点一组进行反转&#xff0c;并返回修改后的链表。如果最后一组节点数少于 k&#xff0c;则保持原顺序。 示例 1&#xff1a; 输入&#xff1a;1 -> 2 -> 3 -> 4 -> 5&…...

#深度学习:从基础到实践

深度学习是人工智能领域近年来最为火热的技术之一。它通过构建由多个隐藏层组成的神经网络模型&#xff0c;能够从海量数据中自动学习特征和表征,在图像识别、自然语言处理、语音识别等领域取得了突破性进展。本文将全面介绍深度学习的基础知识、主要算法和实践应用,帮助您快速…...

Android Kotlin中协程详解

博主前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住也分享一下给大家&#xff0c; &#x1f449;点击跳转到教程 前言 Kotlin协程介绍&#xff1a; Kotlin 协程是 Kotlin 语言中的一种用于处理异步编程的机制。它提供了一…...

【webpack学习】

webpack由于历史包袱导致复杂&#xff0c;只要把握关键流程即可 webpack的主要流程loader plugin难点&#xff1a;HMR / 懒加载 原理webpack 的优化手段 构建工具对比 webpack &#xff1a;可以打包任何资源&#xff0c;配置略复杂&#xff0c;适合项目开发rollup&#xff1…...

H5实现PDF文件预览,使用pdf.js-dist进行加载

H5实现PDF文件预览&#xff0c;使用pdf.js-dist进行加载 一、应用场景 在H5平台上预览PDF文件是在原本已经开发完成的系统中新提出的需求&#xff0c;原来的系统业务部门是在PC端进行PDF的预览与展示&#xff0c;但是现在设备进行了切换&#xff0c;改成了安卓一体机进行文件…...

面试域——面试系统工程

摘要 1. 当前就业面试场景 1.1. 招聘市场的“551 定律” 你知道招聘市场的“551 定律”吗&#xff1f; 551 定律&#xff1a;每一层筛选环节都会有百分之十的折损率。一个岗位从接收简历到发下 Offer 至少要筛选 500 份左右的简历、面试 50 人左右、只有 5 人左右通过面试&am…...

PHP-FPM 性能配置优化

4 核 8 G 服务器大约可以开启 500 个 PHP-FPM&#xff0c;极限吞吐量在 580 qps &#xff08;Query Per Second 每秒查询数&#xff09;左右。 Nginx php-fpm 是怎么工作的&#xff1f; php-fpm 全称是 PHP FastCGI Process Manager 的简称&#xff0c;从名字可得知&#xff…...

渗透测试-百日筑基—SQL注入篇时间注入绕过HTTP数据编码绕过—下

day8-渗透测试sql注入篇&时间注入&绕过&HTTP数据编码绕过 一、时间注入 SQL注入时间注入&#xff08;也称为延时注入&#xff09;是SQL注入攻击的一种特殊形式&#xff0c;它属于盲注&#xff08;Blind SQL Injection&#xff09;的一种。在盲注中&#xff0c;攻击…...

Unity - UGUI动静分离

原理&#xff1a;UGUI 是基于Canvas来进行合并计算的 1.不同Cavans的UI元素&#xff0c;是无法合批渲染&#xff0c;无法实现同一个drawcall 2. 每次合批的时候&#xff0c;会合并计算Canvas下所有的UI元素 , 具体流程: Step1: 对Cavans下所有的UI元素进行合批计算 Step2: …...

arm 体系架构-过程调用约定

ref&#xff1a; ARM体系结构学习笔记&#xff1a;过程调用标准AAPC、 ARM32调用约定、ARM64调用约定_arm64 传参 结构体-CSDN博客 ARM软件逆向工程入门 01 - ARM调用约定&#xff08;Calling Convention&#xff09;_armv7函数调用约定-CSDN博客 ARM学习&#xff08;17&…...

STM32基于LL库的USART+DMA使用

时隔两年半再次更新LL库&#xff0c;本次带来USART DMA 实现接收不定长。 1、开发思路 使用USART DMA接收不定长的功能的思路是&#xff1a;借助USART的空闲中断、DMA发送完成中断。 打开F103的手册可得知&#xff0c;USART的空闲中断触发条件是在接收完成后触发&#xff0…...

设计模式06-结构型模式1(适配器/桥接/组合模式/Java)

#1024程序员节&#xff5c;征文# 4.1 适配器模式 结构型模式&#xff08;Structural Pattern&#xff09;的主要目的就是将不同的类和对象组合在一起&#xff0c;形成更大或者更复杂的结构体。结构性模式的分类&#xff1a; ​ 类结构型模式关心类的组合&#xff0c;由多个类…...

【损害和风险评估&坑洼】路面坑洼检测系统源码&数据集全套:改进yolo11-DCNV3

改进yolo11-DLKA等200全套创新点大全&#xff1a;路面坑洼检测系统源码&#xff06;数据集全套 1.图片效果展示 项目来源 人工智能促进会 2024.10.24 注意&#xff1a;由于项目一直在更新迭代&#xff0c;上面“1.图片效果展示”和“2.视频效果展示”展示的系统图片或者视频可…...

GenAI 生态系统现状:不止大语言模型和向量数据库

自 20 个月前 ChatGPT 革命性的推出以来&#xff0c;生成式人工智能&#xff08;GenAI&#xff09;领域经历了显著的发展和创新。最初&#xff0c;大语言模型&#xff08;LLMs&#xff09;和向量数据库吸引了最多的关注。然而&#xff0c;GenAI 生态系统远不止这两个部分&#…...

gitlab 配置ssh keys

settings -- 终端配置&#xff1a; git config --global user.email "yxthotmail.cm" 配置gitlab 账号邮箱 git config --global user.name "xt.yao" 配置gitlab账号用户名 生成SSH key&#xff0c;输入命令ssh-keygen -t rsa&#xff0c;一直按回车…...

小程序开发实战:PDF转换为图片工具开发

目录 一、开发思路 1.1 申请微信小程序 1.2 编写后端接口 1.3 后端接口部署 1.4 微信小程序前端页面开发 1.5 运行效果 1.6 小程序部署上线 今天给大家分享小程序开发系列&#xff0c;PDF转换为图片工具的开发实战&#xff0c;感兴趣的朋友可以一起来学习一下&#xff01…...

我有两台120kw充电桩一天能赚多少钱

&#xff08;当前是理想状态下&#xff0c;当然还要看场地费用&#xff0c;还有物业&#xff0c;变压器&#xff0c;等等&#xff09; ———————————————————— ———————————————————— 要计算两台120kW充电桩能赚多少钱&#xff0c;我们…...

深入了解 Android 中的命名空间:`xmlns:tools` 和其他常见命名空间

在 Android 开发中&#xff0c;xmlns &#xff08;.xml的namespace&#xff09;命名空间是一个非常重要的概念。通过引入不同的命名空间&#xff0c;可以使用不同的属性来设计布局、设置工具属性或者支持自定义视图等。除了 xmlns:tools 以外&#xff0c;还有很多常见的命名空间…...

stable-zero123模型构建指南

一、介绍 stabilityai出品&#xff0c;能够对有简单背景的物体进行三维视角图片的生成&#xff0c;简单来说也就是通过调整变换观察的视角生成对应视角的图片。 本项目通过comfyui实现。 二、容器构建说明 1. 部署ComfyUI &#xff08;1&#xff09;使用命令克隆ComfyUI g…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

深入理解Optional:处理空指针异常

1. 使用Optional处理可能为空的集合 在Java开发中&#xff0c;集合判空是一个常见但容易出错的场景。传统方式虽然可行&#xff0c;但存在一些潜在问题&#xff1a; // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...

【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验

Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...

深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向

在人工智能技术呈指数级发展的当下&#xff0c;大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性&#xff0c;吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型&#xff0c;成为释放其巨大潜力的关键所在&…...

Linux中《基础IO》详细介绍

目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改&#xff0c;实现简单cat命令 输出信息到显示器&#xff0c;你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...

es6+和css3新增的特性有哪些

一&#xff1a;ECMAScript 新特性&#xff08;ES6&#xff09; ES6 (2015) - 革命性更新 1&#xff0c;记住的方法&#xff0c;从一个方法里面用到了哪些技术 1&#xff0c;let /const块级作用域声明2&#xff0c;**默认参数**&#xff1a;函数参数可以设置默认值。3&#x…...