蓝桥杯第二十场小白入门赛
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.黛玉泡茶 我的思路代码:(但我不知道哪有错误) #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 题:K 个一组反转链表 题目描述 给定一个链表,将链表每k个节点一组进行反转,并返回修改后的链表。如果最后一组节点数少于 k,则保持原顺序。 示例 1: 输入:1 -> 2 -> 3 -> 4 -> 5&…...
#深度学习:从基础到实践
深度学习是人工智能领域近年来最为火热的技术之一。它通过构建由多个隐藏层组成的神经网络模型,能够从海量数据中自动学习特征和表征,在图像识别、自然语言处理、语音识别等领域取得了突破性进展。本文将全面介绍深度学习的基础知识、主要算法和实践应用,帮助您快速…...
Android Kotlin中协程详解
博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家, 👉点击跳转到教程 前言 Kotlin协程介绍: Kotlin 协程是 Kotlin 语言中的一种用于处理异步编程的机制。它提供了一…...
【webpack学习】
webpack由于历史包袱导致复杂,只要把握关键流程即可 webpack的主要流程loader plugin难点:HMR / 懒加载 原理webpack 的优化手段 构建工具对比 webpack :可以打包任何资源,配置略复杂,适合项目开发rollup࿱…...
H5实现PDF文件预览,使用pdf.js-dist进行加载
H5实现PDF文件预览,使用pdf.js-dist进行加载 一、应用场景 在H5平台上预览PDF文件是在原本已经开发完成的系统中新提出的需求,原来的系统业务部门是在PC端进行PDF的预览与展示,但是现在设备进行了切换,改成了安卓一体机进行文件…...
面试域——面试系统工程
摘要 1. 当前就业面试场景 1.1. 招聘市场的“551 定律” 你知道招聘市场的“551 定律”吗? 551 定律:每一层筛选环节都会有百分之十的折损率。一个岗位从接收简历到发下 Offer 至少要筛选 500 份左右的简历、面试 50 人左右、只有 5 人左右通过面试&am…...
PHP-FPM 性能配置优化
4 核 8 G 服务器大约可以开启 500 个 PHP-FPM,极限吞吐量在 580 qps (Query Per Second 每秒查询数)左右。 Nginx php-fpm 是怎么工作的? php-fpm 全称是 PHP FastCGI Process Manager 的简称,从名字可得知ÿ…...
渗透测试-百日筑基—SQL注入篇时间注入绕过HTTP数据编码绕过—下
day8-渗透测试sql注入篇&时间注入&绕过&HTTP数据编码绕过 一、时间注入 SQL注入时间注入(也称为延时注入)是SQL注入攻击的一种特殊形式,它属于盲注(Blind SQL Injection)的一种。在盲注中,攻击…...
Unity - UGUI动静分离
原理:UGUI 是基于Canvas来进行合并计算的 1.不同Cavans的UI元素,是无法合批渲染,无法实现同一个drawcall 2. 每次合批的时候,会合并计算Canvas下所有的UI元素 , 具体流程: Step1: 对Cavans下所有的UI元素进行合批计算 Step2: …...
arm 体系架构-过程调用约定
ref: ARM体系结构学习笔记:过程调用标准AAPC、 ARM32调用约定、ARM64调用约定_arm64 传参 结构体-CSDN博客 ARM软件逆向工程入门 01 - ARM调用约定(Calling Convention)_armv7函数调用约定-CSDN博客 ARM学习(17&…...
STM32基于LL库的USART+DMA使用
时隔两年半再次更新LL库,本次带来USART DMA 实现接收不定长。 1、开发思路 使用USART DMA接收不定长的功能的思路是:借助USART的空闲中断、DMA发送完成中断。 打开F103的手册可得知,USART的空闲中断触发条件是在接收完成后触发࿰…...
设计模式06-结构型模式1(适配器/桥接/组合模式/Java)
#1024程序员节|征文# 4.1 适配器模式 结构型模式(Structural Pattern)的主要目的就是将不同的类和对象组合在一起,形成更大或者更复杂的结构体。结构性模式的分类: 类结构型模式关心类的组合,由多个类…...
【损害和风险评估&坑洼】路面坑洼检测系统源码&数据集全套:改进yolo11-DCNV3
改进yolo11-DLKA等200全套创新点大全:路面坑洼检测系统源码&数据集全套 1.图片效果展示 项目来源 人工智能促进会 2024.10.24 注意:由于项目一直在更新迭代,上面“1.图片效果展示”和“2.视频效果展示”展示的系统图片或者视频可…...
GenAI 生态系统现状:不止大语言模型和向量数据库
自 20 个月前 ChatGPT 革命性的推出以来,生成式人工智能(GenAI)领域经历了显著的发展和创新。最初,大语言模型(LLMs)和向量数据库吸引了最多的关注。然而,GenAI 生态系统远不止这两个部分&#…...
gitlab 配置ssh keys
settings -- 终端配置: git config --global user.email "yxthotmail.cm" 配置gitlab 账号邮箱 git config --global user.name "xt.yao" 配置gitlab账号用户名 生成SSH key,输入命令ssh-keygen -t rsa,一直按回车…...
小程序开发实战:PDF转换为图片工具开发
目录 一、开发思路 1.1 申请微信小程序 1.2 编写后端接口 1.3 后端接口部署 1.4 微信小程序前端页面开发 1.5 运行效果 1.6 小程序部署上线 今天给大家分享小程序开发系列,PDF转换为图片工具的开发实战,感兴趣的朋友可以一起来学习一下!…...
我有两台120kw充电桩一天能赚多少钱
(当前是理想状态下,当然还要看场地费用,还有物业,变压器,等等) ———————————————————— ———————————————————— 要计算两台120kW充电桩能赚多少钱,我们…...
深入了解 Android 中的命名空间:`xmlns:tools` 和其他常见命名空间
在 Android 开发中,xmlns (.xml的namespace)命名空间是一个非常重要的概念。通过引入不同的命名空间,可以使用不同的属性来设计布局、设置工具属性或者支持自定义视图等。除了 xmlns:tools 以外,还有很多常见的命名空间…...
stable-zero123模型构建指南
一、介绍 stabilityai出品,能够对有简单背景的物体进行三维视角图片的生成,简单来说也就是通过调整变换观察的视角生成对应视角的图片。 本项目通过comfyui实现。 二、容器构建说明 1. 部署ComfyUI (1)使用命令克隆ComfyUI g…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
