牛客小白月赛99

devtools/2024/9/23 23:28:51/

文章目录

  • 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.ppmy.cn/devtools/99977.html

相关文章

npm install常见错误以及解决办法

在使用 Node.js 开发项目时&#xff0c;npm install 是开发者经常使用的命令&#xff0c;用于安装项目依赖库。然而&#xff0c;由于环境配置、网络问题或者包的版本兼容性等问题&#xff0c;npm install 有时会遇到一些常见错误。本文将总结几种常见错误及其解决方法&#xff…

ffmpeg.exe命令行参数的简单介绍

关于ffmpeg.exe ffmpeg.exe 是一个开源的多媒体处理工具&#xff0c;广泛应用于音视频的录制、转换、流媒体处理等领域。它由FFmpeg项目开发&#xff0c;支持多种音视频格式&#xff0c;并提供了丰富的命令行选项&#xff0c;使其功能强大且灵活。 功能应用 格式转换&#x…

JS中Object.prototype.toString方法解读

Object.prototype.toString 是 JavaScript 中一个非常重要的方法&#xff0c;用于获取对象的类型信息。它的主要功能是返回一个表示对象类型的字符串。 1. 基本用法 Object.prototype.toString 是 Object 原型链上的一个方法&#xff0c;所有对象都可以访问它。默认情况下&am…

Array List 练习(添加手机对象并返回要求的数据)

package ArrayListDemo;import java.util.ArrayList;public class ArrayListDemo7 {public static void main(String[] args) {//1.创建集合对象ArrayList<Phone> list new ArrayList<Phone>();//2.创建手机对象Phone ph1 new Phone("小米",1000);Pho…

六. 部署分类器-deploy-classification-advanced

目录 前言0. 简述1. 案例运行2. 补充说明3. 代码分析3.1 main.cpp3.2 trt_worker.cpp3.3 trt_logger.cpp3.4 trt_classifier.cpp3.5 trt_model.cpp3.6 inference部分 结语下载链接参考 前言 自动驾驶之心推出的 《CUDA与TensorRT部署实战课程》&#xff0c;链接。记录下个人学习…

芯片后端之 PT 使用 report_timing 产生报告 之 -include_hierarchical_pins 选项

今天,我们再学习一点点 后仿真相关技能。 那就是,了解 report_timing 中的 -include_hierarchical_pins 选项。 如果我们仅仅使用如下命令,执行后会发现: pt_shell> report_timing -from FF1/CK -to FF2/d -delay_type max 我们使用命令 report_timing 报出的如上路…

Linux——驱动——杂项设备

一、杂项设备驱动 1、概念 杂项设备&#xff08;Miscellaneous Devices&#xff09;在Linux内核中是一种特殊的设备类型&#xff0c;用于表示那些不适合被归类为其他标准设备类型的设备。这些设备通常具有不规则的特性和非标准的通信协议或接口。 2、操作流程 杂项设备注册过…

零基础5分钟上手亚马逊云科技核心云架构知识-创建NoSQL数据库

简介&#xff1a; 欢迎来到小李哥全新亚马逊云科技AWS云计算知识学习系列&#xff0c;适用于任何无云计算或者亚马逊云科技技术背景的开发者&#xff0c;通过这篇文章大家零基础5分钟就能完全学会亚马逊云科技一个经典的服务开发架构方案。 我会每天介绍一个基于亚马逊云科技…