牛客小白月赛101(A~E)

文章目录

  • 写在前面
  • A tb的区间问题
    • 思路
    • code
  • B tb的字符串问题
    • 思路
    • code
  • C tb的路径问题
    • 思路
    • code
  • D tb的平方问题
    • 思路
    • code
  • E tb的数数问题
    • 思路
    • code

牛客小白月赛101

写在前面

最近几天没怎么刷题,昨天晚上打的这场牛客月赛打的很烂,隔几天不刷题感觉自己的思维都钝化了,看来每天得刷几题找找手感,不然直接打训练赛容易暴毙

A tb的区间问题

思路

考点:模拟

由于每次只能删除第一个元素或者最后一个元素,那么操作k次后,剩余的序列一定是连续的
我们可以运用滑动窗口的思想,从左到右遍历,如果当前的窗口的个数超出 n − k n-k nk 个,将最前面的元素减去即可

code

int a[N];
void solve(){int n,k;cin >> n >> k;for(int i=1;i<=n;++i) cin >> a[i];int sum=0;int ans=0;for(int i=1;i<=n;++i){sum+=a[i];if(i>=n-k){sum-=a[i-(n-k)];ans=max(ans,sum);}}cout << ans;return ;
}

B tb的字符串问题

思路

考点:单调栈

遍历字符串,如果当前字符和栈顶字符可以进行匹配(即"fc"或者"tb"),将栈顶出队
反之,将当前字符加入栈中
最后输出栈的大小即可

code

void solve(){int n;cin >> n;string s;cin >> s;stack<char> st;for(int i=0;i<s.size();++i){if(st.empty()) st.push(s[i]);else{if(st.top()=='f' && s[i]=='c' || st.top()=='t' && s[i]=='b'){st.pop();}else st.push(s[i]);}}cout << st.size() << endl;return ;
}

C tb的路径问题

思路

考点:找规律

把玩一下不难发现,每次进行传送的格子都是当x等于2的时候进行传送

  • 当n大于等于4时,如果n为偶数,输出4
  • 如果n为奇数,输出6

小于4的情况直接打印出来即可,一道很简单的规律题

code

void solve(){int n;cin >> n;if(n==1){cout << 0 << endl;}else if(n==2) cout << 2 << endl;else if(n==3) cout << 4 << endl;else{if(!(n & 1)) cout << 4 << endl;else cout << 6 << endl;}return ;
}

D tb的平方问题

思路

考点:差分

对于一个区间的问题,一般都需要用到差分
对于一个区间 [ l , r ] [l,r] [l,r] ,有且仅有一个完全平方数,因此我们可以用差分去维护这个区间

我们可以开一个map数组,key存的是sum,value存的是下标,用于差分维护
从左到右进行遍历,然后在开一重 j j j循环从1到sum
如果当前 s u m − j ∗ j sum-j*j sumjj 在数组出现过,则用差分进行维护
最后进行前缀和处理,每次询问输出当前下标的值即可

code

int a[N],c[N];
void solve(){int n,q;cin >> n >> q;for(int i=1;i<=n;++i) cin >> a[i];int sum=0;map<int,int> m;m[0]=0;for(int i=1;i<=n;++i){sum+=a[i];for(int j=1;j*j<=sum;++j){if(m.count(sum-j*j)){c[m[sum-j*j]+1]++;c[i+1]--;}m[sum]=i;}}for(int i=1;i<=n;++i) c[i]+=c[i-1];while(q--){int x;cin >> x;cout << c[x] << endl;}return ;
}

E tb的数数问题

思路

考点:模拟

题目说的很清楚了,如果一个数的所有因子不在数组里,那这个数就不是好数字
首先需要进行特判,如果数组里面没有1,那么直接输出0(1作为因子是最基本的)

由于数据范围不大,因此可以从1遍历到数组中最大的数
如果当前数没被标记,则将它以及它之后的倍数都标记为0
最后统计被标记的数字即可

code

int a[N],vis[N],f[N];//vis标记数组,f操作数组(被操作过的数不需要在进行操作)
void solve(){int n;cin >> n;int flag=0,mx=0;for(int i=1;i<=n;++i){cin >> a[i];if(a[i]==1) flag=1;mx=max(mx,a[i]);	vis[a[i]]=1;} if(flag==0){cout << 0 << endl;return ;}for(int i=2;i<=mx;++i){if(!vis[i] && !f[i]){for(int j=i+i;j<=mx;j+=i){vis[j]=0;f[j]=1;}}}int ans=0;for(int i=1;i<=mx;++i){if(vis[i]) ans++;}cout << ans;return ;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/53355.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea上传jar包到nexus

注意&#xff1a;确保idea中项目为maven项目&#xff0c;并且在nexus中已经创建了maven私服。 1、配置pom.xml中推送代码配置 <distributionManagement> <repository> <id>releases</id> <url>http://127.0.0.1:8001/repository/myRelease/<…

Mybatis自定义TypeHandler,直接存储枚举类对象

在这篇文章中&#xff0c;我们已经知道如何使用枚举类直接接受前端的数字类型参数&#xff0c;省去了麻烦的转换。如果数据库需要保存枚举类的code&#xff0c;一般做法也是代码中手动转换&#xff0c;那么能不能通过某种机制&#xff0c;省去转换&#xff0c;达到代码中直接保…

【Unity-UGUI组件拓展】| Image 组件拓展,支持FIlled和Slice功能并存

🎬【Unity-UGUI组件拓展】| Image 组件拓展,支持FIlled和Slice功能并存一、组件介绍二、组件拓展方法三、完整代码💯总结🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN🙉 🎄 学习专栏推荐:Unity系统学习专栏 🌲 游戏…

博睿谷IT认证-订阅试学习

在这个信息爆炸的时代&#xff0c;拥有一张IT认证证书&#xff0c;就像拿到了职场晋升的通行证。博睿谷&#xff0c;作为IT认证培训的佼佼者&#xff0c;帮你轻松拿下华为、Oracle等热门认证。下面&#xff0c;让我们一起看看博睿谷如何助你一臂之力。 学习时间&#xff0c;你说…

将阮一峰老师的《ES6入门教程》的源码拷贝本地运行和发布

你好同学&#xff0c;我是沐爸&#xff0c;欢迎点赞、收藏、评论和关注。 阮一峰老师的《ES6入门教程》应该是很多同学学习 ES6 知识的重要参考吧&#xff0c;应该也有很多同学在看该文档的时候&#xff0c;想知道这个教程的前端源码是怎么实现的&#xff0c;也可能有同学下载…

移动技术开发:ListView水果列表

1 实验名称 ListView水果列表 2 实验目的 掌握自定义ListView控件的实现方法 3 实验源代码 布局文件代码&#xff1a; activity_main.xml: <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.androi…

远程连接MySQL并操作

配置MySQL开发环境 如果你使用的是基于Debian的系统&#xff08;如Ubuntu&#xff09;&#xff0c;可以在终端通过如下步骤安装MySQL开发包。 更新软件包列表 运行以下命令以确保你拥有最新的软件包列表。 sudo apt-get update安装libmysqlclient-dev开发包 执行以下命令以…

【Java注解】

Java注解&#xff08;Annotation&#xff09;让其他程序根据注解信息来决定怎么执行该程序。 是Java 5中引入的一种特殊类型的注释&#xff0c;它可以被用来为代码添加元数据&#xff0c;即关于代码的数据。 注解不会改变程序的逻辑&#xff0c;但它们可以被其他程序使用&…

Datawhale X 南瓜书 task02学习笔记

算法原理引入 样本点通常应该在模型的2侧&#xff0c;原因&#xff1a;在实际中&#xff0c;因为某种不可控的因素&#xff0c;测出来的样本点肯定是有误差的。如果样本数据点都在模型上&#xff0c;则说明在建立模型时&#xff0c;把误差也考虑进去了&#xff0c;这就是我们说…

【技术解析】消息中间件MQ:从原理到RabbitMQ实战(深入浅出)

文章目录 【技术解析】消息中间件MQ&#xff1a;从原理到RabbitMQ实战(深入浅出)1.简介1.1 什么是消息中间件1.2 传统的http请求存在那些缺点1.3 Mq应用场景有那些1.4 为什么需要使用mq1.5 Mq与多线程之间区别1.6 Mq消息中间件名词1.7主流mq区别对比1.8 Mq设计基础知识 2.Rabbi…

前端框架Vue、React、Angular、Svelte对比

在对比 React、Vue.js、Angular 和 Svelte 时&#xff0c;除了在高层次的特性上有显著差异&#xff0c;它们在核心设计理念和底层实现机制上也有明显的不同。为了清晰地理解这些框架&#xff0c;我们可以从以下几个方面来分析它们的核心不同点和底层不同点。 1. 框架类型和设计…

Golang | Leetcode Golang题解之第415题字符串相加

题目&#xff1a; 题解&#xff1a; func addStrings(num1 string, num2 string) string {add : 0ans : ""for i, j : len(num1) - 1, len(num2) - 1; i > 0 || j > 0 || add ! 0; i, j i - 1, j - 1 {var x, y intif i > 0 {x int(num1[i] - 0)}if j &g…

ChatGPT 4o 使用指南 (9月更新)

首先基础知识还是要介绍得~ 一、模型知识&#xff1a; GPT-4o&#xff1a;最新的版本模型&#xff0c;支持视觉等多模态&#xff0c;OpenAI 文档中已经更新了 GPT-4o 的介绍&#xff1a;128k 上下文&#xff0c;训练截止 2023 年 10 月&#xff08;作为对比&#xff0c;GPT-4…

深度学习自编码器 - 去噪自编码器篇

序言 在深度学习的广阔天地中&#xff0c;自编码器作为一种强大的无监督学习工具&#xff0c;通过重构输入数据的方式&#xff0c;不仅实现了数据的有效压缩&#xff0c;还探索了数据的内在表示。而去噪自编码器&#xff08; Denoising Autoencoder, DAE \text{Denoising Auto…

软件设计师——操作系统

&#x1f4d4;个人主页&#x1f4da;&#xff1a;秋邱-CSDN博客☀️专属专栏✨&#xff1a;软考——软件设计师&#x1f3c5;往期回顾&#x1f3c6;&#xff1a;C: 类和对象&#xff08;上&#xff09;&#x1f31f;其他专栏&#x1f31f;&#xff1a;C语言_秋邱 一、操作系统…

VGG16模型实现新冠肺炎图片多分类

1. 项目简介 本项目的目标是通过深度学习模型VGG16&#xff0c;实现对新冠肺炎图像的多分类任务&#xff0c;以帮助医疗人员对患者的影像进行快速、准确的诊断。新冠肺炎自爆发以来&#xff0c;利用医学影像如X光和CT扫描进行疾病诊断已成为重要手段之一。随着数据量的增加&am…

华为---以太网静态路由配置使用下一跳通信正常,而使用出接口无法通信

目录 1. 实验环境 2. 结果测试 3. 分析验证 3.1 以太网静态路由配置使用下一跳跨网段通信抓包分析 3.2 以太网静态路由配置使用出接口跨网段通信抓包分析 3.3 以太网静态路由配置使用出接口无法跨网段通信问题解决办法 1. 实验环境 以太网静态路由配置使用下一跳跨网段通…

网络丢包定位记录(二)

网卡驱动丢包 查看&#xff1a;ifconfig eth1/eth0 等接口 1.RX errors: 表示总的收包的错误数量&#xff0c;还包括too-long-frames错误&#xff0c;Ring Buffer 溢出错误&#xff0c;crc 校验错误&#xff0c;帧同步错误&#xff0c;fifo overruns 以及 missed pkg 等等。 …

Maven的详细解读和配置

目录 一、Maven 1.1 引言 1.2 介绍 1.3 下载安装 1.3.1 解压 1.3.2 配置环境变量 1.3.3 测试 1.4 仓库[了解] 1.5 Maven配置 1.5.1 修改仓库位置 1.5.2 设置镜像 二、IDEA - MAVEN 2.1 idea关联maven 2.2 为新项目设置 2.2 创建java项目[重点] 2.3 java项目结构…

Go-知识-定时器

Go-知识-定时器 1. 介绍2. Timer使用场景2.1 设定超时时间2.2 延迟执行某个方法 3. Timer 对外接口3.1 创建定时器3.2 停止定时器3.3 重置定时器3.4 After3.5 AfterFunc 4. Timer 的实现原理4.1 Timer数据结构4.1.1 Timer4.1.2 runtimeTimer 4.2 Timer 实现原理4.2.1 创建Timer…