C++牛客小白月赛题目分享(1)生不逢七,交换数字,幻兽帕鲁

目录

1.前言

2.三道题目

1.生不逢七

1.题目描述

2.输入描述:

3.输出描述:

4.示例:

5.题解:

2.交换数字

1.题目描述:

2.输入描述:

​编辑 

3.输出描述:

4.示例:

5.题解:

3.幻兽帕鲁

1.题目描述:

2.输入描述:

3.输出描述:

4.示例:

5.题解:

3.小结



1.前言

今天小蒟蒻为大家分享牛客小白月赛93部分题目的题解,考了蛮多高精度滴~,一共三道题,希望你能对大家有所帮助~

2.三道题目

1.生不逢七

1.题目描述

睡前游戏中最简单又最好玩的游戏就是这个啦!

该游戏规则为:多名玩家轮流报数,当要报的数字中含有 7或者是 7 的倍数时(例如 37,49),不能将该数报出来,要换一种提前规定好的方式报数,当一个人报错或者报慢了这个人就输了。我们认为玩家是围成一圈进行游戏的,第 n 个人报完数之后,会轮到第 1 个人报数。


现在告诉你玩家的总人数以及你上一个人报的数(用数字表示,即便这个数含有 7 或者是 7 的倍数),你需要预测接下来 k 轮你要报的数字,当你需要报的数字含有 7 或者是 7 的倍数时,你需要输出字符 p。

2.输入描述:

 

3.输出描述:

 

4.示例:

5.题解:

#include<iostream>
#include<algorithm>
using namespace std;int t=0;
int n=0,a=0,k=0;int func2(int y1){if(y1%7==0)return 0;while(y1){if(y1%10==7)return 0;y1=y1/10;}return 1;
}void func1(int x,int y,int z){while(z--){int flag=func2(y);if(flag==0)printf("p ");else printf("%d ",y);y=y+x;}
}int main(){scanf("%d",&t);while(t--){scanf("%d %d %d",&n,&a,&k);func1(n,a+1,k);printf("\n");}return 0;
} 

这道题作为签到题,比平时的只需要几个语句的就可以输出的要难上一点,但也是单纯的模拟,只是本人写的代码需要优化的仍有很多,所以显得很长。

这道题整体思路如下:先按照题意中的报号顺序推出自己每一次的号(第一次的号只需要+1,后面的号码1需要加上组内总人数),再判断是否可以%7或者是否含7即可,最后输出。

2.交换数字

1.题目描述:

2.输入描述:

3.输出描述:

4.示例:

5.题解:

#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;char a[200005],b[200005];
int n;
long long sum1=0,sum2=0;int main(){scanf("%d%s%s",&n,&a,&b);for(int i=0;i<n;i++){if(a[i]>b[i])swap(a[i],b[i]);}for(int j=0;j<n;j++){sum1=sum1*10+(a[j]-'0');sum1=sum1%998244353;sum2=sum2*10+(b[j]-'0');sum2=sum2%998244353;}printf("%d\n",sum1*sum2%998244353);return 0;
}
  • 这道题有一个简单的数学问题:a*b何时最小。可以比较容易得出来的是,当a和b分别满足题目条件的最大和最小的时候相乘,该值为最小(可以举个简单的例子,若当下有1,2,3,4,5,6这6个数,显然123*456最小,找不到比这个还小的了)。
  • 解决了这个问题以后,让我们看一下这个题的限制条件,n可以取到200000,那么这个数最大可以取到10的200000次方,这显然开long long也无法解决(64位中long long最大为2的64次方),于是我们用字符串数组来存储这么一个巨大的数字。
  • 接着运用swap函数将a和b每一位的较大和较小至于一侧,最后相乘%998244353即可(求a和b的值时也要%998244353,防止溢出,也不会影响结果)。

3.幻兽帕鲁

1.题目描述:

2.输入描述:

3.输出描述:

4.示例:

5.题解:

#include <bits/stdc++.h>
using namespace std;void solve()
{int n , m;cin >> n >> m;while (m -- ){long long x , y = 0;cin >> x;for (int i = 0 ; i < n ; i ++ ){y <<= 1;y = y | (x & 1);x >>= 1;}cout << y << endl;}
}int main()
{solve();return 0;
}

 这道题的思路我是参考着其他大佬的思路才做出来的,正所谓代码量与思考量成反比,虽然上面只有寥寥数行代码,但思路很有价值,当你明白后绝对会自己有巨大提升。我也是跟着代码模拟了几遍才明白其原理,利用了最最基本的左移右移操作符以及按位与按位或操作实现了先打印偶数,再打印奇数。(这道题不能按照平常思路来做,因为n可以取到60,即2的60次方-1,开数组绝对开不了这么大)

接下来就以第一个示例为主,我一步一步带着大家模拟:

  • 输入2,4表示一共有4只帕鲁,需输出四行
  • 进入solve函数中

x先输入0,进入循环

  • y左移一位还为0
  • 0按位与1仍为0,与y按位或还为0,y仍为0
  • x右移一位仍为0
  • 接下来n次循环y值不变,则输出y为0

x输入1,进入循环

  • y左移一位还为0
  • 1按位与1为1,与y按位或还为1,y为1
  • x右移一位为0
  • 进入第二次循环,y左移一位为2(二进制为01变为010)
  • 最后输出2

x输入2,进入循环

  • y左移一位还为0
  • 2按位与1为0(10和01),与y按位或还为0,y仍为0
  • x右移一位为1
  • 进入第二次循环,y左移一位为0
  • 1按位与1为1,与y按位或还为1,y为1
  • 最后输出1

x输入3,进入循环

  • y左移一位还为0
  • 3按位与1为1,与y按位或为1,y为1
  • x右移一位为1
  • 进入第二次循环,y左移一位为2
  • 1按位与1为1,与y按位或还为3(10与01按位或11),y为3
  • 最后输出3,符合题意

结果真的很奇妙吧!!!大家在下面思考过后也尝试实现一下吧

3.小结

今天分享的三道题到这里就结束了喔了,希望大家有所收获并多多支持哦~

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

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

相关文章

探索震坤行API:一键解锁高效工业用品采购新纪元!

震坤行是一家专注于工业用品的B2B电商平台&#xff0c;为企业客户提供一站式的工业用品采购服务。虽然震坤行没有直接公开通用的API接口供开发者调用&#xff0c;但通常大型企业或合作伙伴之间可以通过API进行系统集成和数据交互。以下是一个假设性的震坤行API接口调用示例与代…

STM32_HAL_RTC_中断实现闹钟

1STM32设置 在STM32Cude中设置RTC//具体设置看先前发的文章 再打开闹钟中断&#xff08;如下图&#xff09; 2代码思路 2.1启动闹钟&#xff08;HAL_RTC_SetAlarm_IT(&hrtc,&sAlarm,FORMAT_BCD)&#xff09; 2.2设置回调函数&#xff08;void HAL_RTC_AlarmAEventC…

ICRA 2024 成果介绍:基于 RRT* 的连续体机器人高效轨迹规划方法

近来&#xff0c;连续体机器人研究受到越来越多的关注。其灵活度高&#xff0c;可以调整形状适应动态环境&#xff0c;特别适合于微创手术、工业⽣产以及危险环境探索等应用。 连续体机器人拥有无限自由度&#xff08;DoF&#xff09;&#xff0c;为执行空间探索等任务提供了灵…

YOLOv8火焰与烟雾智能检测系统

项目概述&#xff1a; 本项目旨在开发一款高效、实时的火焰与烟雾检测系统&#xff0c;利用先进的深度学习技术——YOLOv8&#xff0c;为安全监控领域提供智能化解决方案。系统不仅能够准确识别视频流或静态图像中的火焰与烟雾&#xff0c;还配备了用户友好的图形界面&#xff…

Spring框架中常见注解

Spring&#xff1a; SpringMVC&#xff1a; RequestMapping用在类上表示所有该类下方法的父路径 RequestParam 做映射&#xff0c;前端请求的参数映射到控制器Controller的处理方法上的参数上。 【当参数需要设置默认值&#xff08;前端没有发送这个参数&#xff09;、参数名…

机器人种类分析

2000年前&#xff0c;机器人主要应用于工业生产&#xff0c;俗称工业机器人&#xff0c;由示教器操控&#xff0c;帮助工厂释放劳动力&#xff0c;此时的机器人并没有太多智能而言&#xff0c;完全按照人类的命令执行动作&#xff0c;更加关注电气层面的驱动器、伺服电机、减速…

mysql中sql语句 exists 判断子句的用法

如果子查询成立才执行父查询 exists判断子查询的使用例子&#xff1a; 张三不存在所以前面的父查询不执行 后面的子句结果存在&#xff0c;所以前面的父查询被执行 where条件所连接的嵌套子查询都是&#xff0c;条件子查询 ———————————————————————…

STL——deque容器【双端动态数组】

deque容器的基本概念&#xff1a; 功能&#xff1a;双端数组&#xff0c;可以对头端进行插入删除操作 deque与vector的区别&#xff1a; vector队友头部的插入删除效率低&#xff0c;数据量越大&#xff0c;效率越低deque相对而言&#xff0c;对头部的插入删除速度会比vecto…

QT+多线程TCP服务器+进阶版

针对之前的服务器&#xff0c;如果子线程工作类里面需要使用socket发送消息&#xff0c;必须要使用信号与槽的方法&#xff0c; 先发送一个信号给父进程&#xff0c;父进程调用socket发送消息&#xff08;原因是QT防止父子进程抢夺同一资源&#xff0c;因此直接规定父子进程不能…

C脚本实现WIncc模拟量趋势窗口弹出

文章目录 前言一、步骤及解析二、运行画面演示三、总结 前言 本文给出了一种基于C脚本实现点击输入输出域对象&#xff0c;弹出对应模拟量趋势窗口的方法。 一、步骤及解析 在Wincc变量管理中&#xff0c;添加两个变量&#xff1b; 示例如下&#xff1a; 将以上两个变量添加到…

在新页面中跳转到指定 div容器位置

要在打开新的页面时跳转到指定 div&#xff0c;我们需要结合 HTML、JavaScript 和后端技术来实现。以下是两种常见的方法&#xff1a; 使用 URL 参数传递目标 div 信息 HTML (新页面): 在新页面的链接中&#xff0c;添加参数来指示目标 div 的 id&#xff0c;例如&#xff1a;…

测试docker GPU性能损失

NVIDIA 3090 利用HSOpticalFlow代码测试docker GPU性能损失 docker介绍图如下&#xff1a; 形象生动展示了他们之间的关系 今天要测试docker容器运行HSOpticalFlow算法的性能损失&#xff0c;包括CPU和GPU 上一篇博客 http://t.csdnimg.cn/YW5kE 我已经介绍了使用docker和nvid…

[Linux_IMX6ULL驱动开发]-GPIO子系统和Pinctrl子系统

目录 Pinctrl子系统的概念 GPIO子系统的概念 定义自己的GPIO节点 GPIO子系统的函数 引脚号的确定 基于GPIO子系统的驱动程序 驱动程序 设备树修改 之前我们进行驱动开发的时候&#xff0c;对于硬件的操作是依赖于ioremap对寄存器的物理地址进行映射&#xff0c;以此来达…

【020】基于JavaWeb实现的批报管理系统

项目介绍 基于jspservlet实现的批报管理系统采用B/S架构,该项目设计了一个角色管理员&#xff0c;管理员实现了我的案件、查询统计、项目维护等三大功能模块 技术栈 开发工具&#xff1a;Idea2020.3 运行环境&#xff1a;jdk1.8tomcat9.0mysql5.7 服务端技术&#xff1a;j…

麦肯锡专访 Mistral AI CEO:三五年后的工作,要比现在更有意义

【编者按】总部位于巴黎的人工智能初创公司 Mistral AI 成立仅一年&#xff0c;就被誉为现有大模型巨头的有力挑战者。 今年 2 月&#xff0c;Mistral AI 正式发布了旗舰级大模型 Mistral Large&#xff0c;直接对标 OpenAI 的 GPT-4&#xff1b;几周前&#xff0c;Mistral AI…

Element快速上手!

Element是饿了么公司前端团队开发的一套基于Vue的组件库&#xff0c;用于快速构建网页~ 官网链接&#xff1a; Element - The worlds most popular Vue UI frameworkElement&#xff0c;一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库https://element.elem…

UML之用例图

1.用例图 用例图指参与者&#xff0c;用例&#xff0c;边界以及它们之间的关系构成的用于描述系统功能的视图。说明是谁要使用系统&#xff0c;以及可以使用该系统可以做些什么。展示了一个外部用户能够观察到的系统功能模型图 2.用例图的元素 &#xff08;1&#xff09;参与…

Redis 实战之监视器

监视器 成为监视器向监视器发送命令信息总结 成为监视器 发送MONITOR 命令可以让一个普通客户端变为一个监视器&#xff0c; 该命令的实现原理可以用以下伪代码来实现&#xff1a; def MONITOR():# 打开客户端的监视器标志client.flags | REDIS_MONITOR# 将客户端添加到服务器…

C++初阶之stack,queue,priority_queue的使用和模拟以及仿函数的创建和使用

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言进阶 数据结构初阶 Linux C初阶 算法 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力&#xff0c;一起奔赴大厂 目录 一.stack,queue,priority_queue简介以及代码模拟 1.1 stack …

uniapp 版本检查更新

总体来说uniapp的跨平台还是很不错的&#xff0c;虽然里面各种坑要去踩&#xff0c;但是踩坑也是开发人员的必修课和成长路。 这不&#xff0c;今天就来研究了一下版本检查更新就踩到坑了。。。先来看看检查更新及下载、安装的实现。 先来看看页面&#xff1a; 从左到右依次为…