牛客小白月赛99

news2024/9/22 1:21:41

文章目录

  • A.材料打印
  • B. %%%
  • C.迷宫
  • 又是一年毕业季
  • 题目链接

A.材料打印

签到题,直接按照题意输出就行。赛时写的有点慢了,这种题应该一分钟之内写完的

void solve () {
	int n;cin>>n;
	for (int i=1;i<=n;i++) {
		int a,b,c,d;cin>>a>>b>>c>>d;
		int ans=b*d;
		ans+=min(c,d)*a;
		cout<<ans<<'\n';
	}
}

B. %%%

在这里插入图片描述
一道小小思维题
问n最多能进行几次操作。
模拟一下,当n为6的时候,能选取的值为1,2,3,4,5.可以发现取4的时候最大。当n为7的时候可以选取的数字为1,2,3,4,5,6.可以发现取4的时候最大。
因此我们发现规律,当每次选取n/2+1为值的时候就是最大的

void solve () {
	int n;cin>>n;
	for (int i=1;i<=n;i++) {
		int x;cin>>x;
		int ans=0;
		while (x) {
			x%=(x/2+1);
			ans++;
		}
		cout<<ans<<'\n';
	}
}

C.迷宫

一道搜索题。
问小明能否从S走到E,‘.’代表路,‘#’代表障碍。但是小明有魔力,可以清除一个方向上的障碍物。但是小明的魔力只能使用一次,问小明能否到达目的地
 一开始看到这种迷宫问题我就开始用BFS的思路写。但是发现写不出来,想了想发现这题是DFS的思路。但是最后DFS的思路没有写出来,赛后看了别人的代码才明白
 因为小明的魔力可以清除一个方向上的障碍,所以在一点来看的话,要想到终点, 小明必须清除六个方向上的某一个方向才能到达目的地。我们就先从终点DFS一下,每次把六个方向给标记一下,来说明清除这一方向上的所有点。标记完之后,再从起点DFS,如果小明走到了一处被六个方向其中一个标记的话,就说明能到达终点,因为这一方向是的障碍都被清除了。
         接下来看下代码怎么实现

const int N = 2e5+5;
char a[1050][1050];
int q1,q2;
int z1,z2;
int m[1050][1050];int n,M;
int dx[4]={0,0,1,-1},dy[4]={1,-1,0,0};
int f=0;
int q[1050],w[1050];
void dfs2 (int x,int y) {
	if (x==z1&&y==z2) {
		f=1;return ;
	}
	if (q[x]==1||w[y]==1) {
		f=1;return ;
	}
	for (int i=0;i<4;i++) {
		int nx=x+dx[i];
		int ny=y+dy[i];
		if (nx>=1&&nx<=n&&ny>=1&&ny<=M&&m[nx][ny]==-1) {
			if (a[nx][ny]=='.'||a[nx][ny]=='E') {
				m[nx][ny]=1;
				dfs2 (nx,ny);
			}
			
		}
	}
}

void dfs1 (int x,int y) {
	if (x==q1&&y==q2) {
		f=1;return ;
	}
	q[x-1]=1,q[x]=1,q[x+1]=1,w[y-1]=1,w[y]=1,w[y+1]=1;
	for (int i=0;i<4;i++) {
		int nx=x+dx[i];
		int ny=y+dy[i];
		if (nx>=1&&nx<=n&&ny>=1&&ny<=M&&m[nx][ny]==-1) {
			if (a[nx][ny]=='.'||a[nx][ny]=='S') {
				m[nx][ny]=1;
				dfs1 (nx,ny);
			}
			
		}
	}
}

void solve () {
	memset (m,-1,sizeof m);
	cin>>n>>M;
	for (int i=1;i<=n;i++) {
		for (int j=1;j<=M;j++) {
			cin>>a[i][j];
			if (a[i][j]=='S') q1=i,q2=j;
			if (a[i][j]=='E') z1=i,z2=j;
		}
	}
	dfs1 (z1,z2);
	if (f==1) {
		cout<<"YES";return;
	}
	memset (m,-1,sizeof m);
	dfs2 (q1,q2);
	if (f==1) cout<<"YES";
	else cout<<"NO";
} 

 感觉是比较好的一道搜索题,以前没有见过这种类型的题。这一题的主要思路就是清除障碍的这六个方向,写好就能轻松AC。搜索还是要多练练,毕竟不是难题。

又是一年毕业季

一道欧拉筛的题
在这里插入图片描述
题意很好理解,就是最少多少秒拍照,学生们的眼睛都是睁开的。
 每个学生眨眼的时间都给出了。我们可以发现,如果一个学生第二秒眨眼,那么他往后第4,6,8,10…都会眨眼。我们可以发现,往后眨眼的秒数都是合数。再结合样例我们会发现答案都是素数,所以我们就是要找没有出现的第一个素数。题目范围是已经给出了。
我们现用欧拉筛预处理一下前200000个素数,然后我们直接遍历这200000个素数,用个map标记一下,如果没有出现过的话,那么它就是答案
下面看下代码

void oula  () {
	a[1]=1,a[0]=1;
	for (int i=2;i<=N;i++) {
		if (!a[i]) b[++k]=i;
		for (int j=1;j<=k&&b[j]*i<=N;j++) {
			a[b[j]*i]=1;
			if (i%b[j]==0) break;
		}
	}
}


void solve () {
//	cout<<k;
	int n;cin>>n;map<int,int>mp;
	for (int i=1;i<=n;i++) {
		cin>>x[i];mp[x[i]]++;
	}
	for (int i=1;i<=k;i++) {

		if (mp[b[i]]==0) {
			cout<<b[i]<<'\n';
			return ;
		}
	}
}

考察的就是一个欧拉筛的应用,不是很难,感觉相较于上一题更加简单。

题目链接

点击跳转牛客开启奇妙之旅🐂

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

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

相关文章

go const(常量)

常量介绍 示例 package mainimport ("fmt" )func main() {const name "tom"fmt.Println(name)const tax float64 0.8fmt.Println(tax) }go run const.go tom 0.8package mainimport ("fmt" )func main() {const a intfmt.Println(a) }go run…

SpringAop介绍与使用

AOP的介绍 在不修改原有代码的情况下 增强跟主要业务没有关系的公共功能代码到 之 前写好的方法中的指定位置 这种编程的方式叫AOP AOP的底层用的代理&#xff0c;代理是一种设计模式 静态代理 玩家类 代理类 他们的接口 最后用接口接收代理的类实现静态代理 总结&#x…

英特尔终止开发开源 H.265/HEVC 编码器项目

作为英特尔可扩展视频技术&#xff08;SVT&#xff09;计划的一部分&#xff0c;一直以来他们持续在开发 SVT-HEVC&#xff0c;这是一款 BSD 许可的高性能 H.265/HEVC 视频编码器&#xff0c;针对至强可扩展处理器和至强 D 处理器进行了优化。但最近他们改变了方向&#xff0c;…

kali安装

引言 Kali Linux 是一个基于 Debian 的 Linux 发行版&#xff0c;专门为渗透测试和安全审计而设计。它包含了大量的安全工具&#xff0c;如 Wireshark、Nmap、Metasploit 等&#xff0c;这些工具可以帮助安全专家和研究人员进行网络安全评估、漏洞检测和渗透测试。Kali Linux …

InternLM 2.5 书生·浦语 开源大模型本地部署体验

老牛同学之前偶尔刷到过InternLM大模型相关的介绍文章&#xff0c;因为在老牛同学心中&#xff0c;Qwen2千问才是国内开源模型中最适合自己的大模型&#xff0c;原因是自己在本地部署和应用Qwen2都非常满意&#xff0c;所以没有在意InternLM大模型&#xff0c;也就没有动力去了…

程序员的AI大模型进阶之旅,零基础入门到精通,收藏这一篇就够了

作为程序员&#xff0c;如果你有兴趣迈向AI大模型的进阶之旅&#xff0c;以下是一些步骤和资源可以帮助你&#xff1a; 基础知识&#xff1a;了解机器学习和深度学习的基础概念是重要的第一步。学习线性代数、概率论和统计学等数学基础知识&#xff0c;以及机器学习算法和神经网…

风波中坚守:技术应对突发故障的危与机

文章目录 快速响应与问题定位策略确定故障类型使用排查工具明确响应流程实时沟通与更新事后总结 健全的应急预案和备份机制制定应急预案定期演练数据备份和快速恢复机制持续改进 事后总结与持续改进分析问题根源定义改进措施促进团队学习培养危机意识 技术债务管理与监测识别与…

Netty基础知识

官网地址: https://netty.io/ 快速入门&#xff1a;https://netty.io/wiki/user-guide-for-4.x.html Netty 是一个 NIO 客户端服务器框架&#xff0c;方便快速、简单地开发网络应用程序。 NIO&#xff08;Non-blocking I/O&#xff0c;在Java领域&#xff0c;也称为New I/O&…

《牛虻》读后感

《牛虻》这本书是同事送的&#xff0c;最近换工作、搬家很多杂事&#xff0c;也就没有多少看书的兴致&#xff0c;所以断断续续看了快两周才看完。这是爱尔兰女作家埃塞尔丽莲伏尼契的代表作&#xff0c;在我国声名远播&#xff0c;是一代人的精神食粮。怀着崇敬的心情翻开这本…

淘宝天猫商品详情接口API解密:如何轻松找到最适合的商品?

在当今的电子商务时代&#xff0c;淘宝和天猫作为国内最大的电商平台&#xff0c;每天都有海量的商品供我们选择。如何从这庞大的商品库中寻找到最适合自己的商品&#xff1f;这就需要我们掌握一种高效的搜索方式——详情接口API解密。本文将为您详细解析这一技术&#xff0c;助…

基于强化学习的即时商店自动化管理

介绍 如今&#xff0c;提示是与大型语言模型 (LLM) 交互的主要模式。提示需要根据用户需求进行调整&#xff0c;为 LLM 提供正确的上下文和指导 — 以最大限度地提高获得“正确”响应的机会。 这导致了提示工程 [1] 的兴起&#xff0c;并成为一门专业学科&#xff0c;提示工程师…

docker容器数据卷、数据卷基本案例

在docker里面创建也会在主机中生成文件 并且docker停止 时在主机中创建文件仍然可以生成在docker中

EmguCV学习笔记 VB.Net 6.4 霍夫变换

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

提升大模型内容创作能力

前言 现在的大模型能够创作一些故事、小说等等&#xff0c;但是大多数时候创作出来的剧情都是泛泛而谈&#xff0c;并没人给读者很爽的感觉。近期已经有一些工作开始在该方面进行发力&#xff0c;即让大模型做内容消费&#xff0c;如果大模型能够源源不断的创作出好的剧情来供…

幅频特性曲线分析及使用WPF绘制

文章目录 1、一阶惯性环节的幅频特性曲线分析及绘制2、二阶系统的幅频特性曲线分析及绘制3、一般的系统4、上位机代码实现4.1 一阶惯性系统4.2 二阶系统 5、稳定裕度5.1 幅值裕度5.2 相角裕度 参考 1、一阶惯性环节的幅频特性曲线分析及绘制 这里的a和b可以根据系统的不同修改,…

Ubuntu 22.04上稳定安装与配置搜狗输入法详细教程

摘要&#xff1a;本教程详细介绍了如何在Ubuntu 22.04上安装和配置搜狗输入法&#xff0c;每个步骤详细配图。由于在Ubuntu 24.04上存在兼容性问题&#xff0c;建议用户继续使用稳定的22.04版本。教程涵盖了从更新系统源、安装fcitx输入法框架&#xff0c;到下载和配置搜狗输入…

12、stm32通过dht11读取温湿度

一、配置 二、代码 dht11.c /** dht11.c** Created on: Aug 19, 2024* Author: Administrator*/#include "main.h" #include "tim.h" #include "usart.h" #include "gpio.h" /**TIM3定时器实现us级延时*/ void Delay_us(uint16…

谷歌登录的时候,要求在手机的通知点是,并按数字来验证身份,但是手机通知栏没有收到通知和数字,原因是什么,怎么办?

前两天&#xff0c;有个朋友联系到GG账号服务&#xff0c;说他的一个谷歌账号在新设备登录的时候&#xff0c;提示说要在手机的通知栏点击谷歌发来的通知&#xff0c;点击是确认&#xff0c;并且要点按相应的数字。 但问题是他反复刷新手机的通知栏都没有看到谷歌发来的通知&a…

谷粒商城实战笔记-255~256-商城业务-消息队列-SpringBoot整合RabbitMQ

文章目录 一&#xff0c;Spring整合RabbittMq的步骤二&#xff0c;AmqpAdmin使用1. createExchange()2. testCreateQueue()3. createBinding()4&#xff0c;发送消息 这一部分讲解Spring整合RabbitMq的步骤及其使用&#xff0c;包括&#xff1a; 255-商城业务-消息队列-SpringB…

Tita的OKR :产品经理的OKR

产品经理制定的OKR&#xff0c;对组织发展有重大的意义&#xff0c;它能促使产品经理&#xff0c;产品团队&#xff0c;乃至是公司全体员工走出舒适区&#xff0c;超越能力边界。正因为挑战的存在&#xff0c;才使得产品经理才有忧患意识&#xff0c;不断改进产品&#xff0c;从…