牛客小白月赛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系统学习专栏 🌲 游戏…

Ubuntu24.04 安装ssh开启22端口及允许root用户远程登录

1、安装openssh-server插件开启22端口访问 # 安装ssh会默认启动服务并开启22端口 apt update apt install openssh-server 2、开启root用户远程访问 激活root用户&#xff0c;设置root用户登录密码

博睿谷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…

利用熵权法进行数值评分计算——代码实现

1、前情回顾 之前的文章&#xff0c;我们详细介绍了熵权法的具体计算过程&#xff08;不清楚的读者可点击此处的传送门《利用熵权法进行数值评分计算——算法过程》&#xff09;。本篇文章我们展示熵权法的主要实现代码&#xff08;Java版本&#xff0c;实际上Python、GoLang等…

RabbitMq中交换机(Exchange)、队列(Queue)和路由键(Routing Key)

RabbitMQ 是一个消息代理系统&#xff0c;使用交换机&#xff08;Exchange&#xff09;、队列&#xff08;Queue&#xff09;和路由键&#xff08;Routing Key&#xff09;来管理消息的传递。它们分别起到不同的作用&#xff0c;构成了消息从生产者到消费者的传递路径。 以下是…

音视频入门基础:FLV专题(1)——FLV官方文档下载

一、FLV简介 Flash Video&#xff08;简称FLV&#xff09;&#xff0c;是一种网络视频格式&#xff0c;用作流媒体格式&#xff0c;它的出现有效地解决了视频文件导入Flash后&#xff0c;使导出的SWF文件体积庞大&#xff0c;不能在网络上有效使用等缺点。 一般FLV文件包在SW…

远程连接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…

【Unity链接数据库01】Unity使用Oracle 数据库完成登录注册功能

业务需求&#xff1a; 我现在需要在Unity 中创建一个登录功能我有以下业务需求&#xff1a; 1.用户可以注册账号密码 2.用户可以登录 3.使用Oracle 数据库表存储 4.我有一个服务器 地址已经安装了oracle 数据库 5.创建一个数据库用户 &#xff0c;账号密码 为Unity/ Unity …

Oracle 数据库常用命令与操作指南

Oracle 数据库是企业级系统中常用的数据库管理系统&#xff0c;掌握基础的命令可以让你在日常管理中更加高效。本指南将介绍几条常用的 Oracle 数据库命令&#xff0c;涵盖用户权限管理、修改用户密码、删除用户、以及其他日常操作。 目录 授权用户操作权限使用最高权限登录 O…

Spark SQL性能优化高频面试题及答案

目录 高频面试题及答案1. 如何通过分区(Partitioning)优化Spark SQL查询性能?2. 什么是数据倾斜(Data Skew)?如何优化?3. 如何使用广播(Broadcast)优化Join操作?4. 如何优化Spark SQL的Shuffle操作?5. 如何通过缓存(Cache)优化Spark SQL的性能?6. 如何使用合适的…

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

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