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

news2024/12/29 10:01:11

目录

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.coloradmin.cn/o/1663134.html

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

相关文章

开源基金会AtomGit教程

大家伙&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。 注册 点击链接进入官网&#xff0c;先注册&#xff0c;然后登录&#xff1a;https://atomgit.com/ 编辑个人资料&#xff0c;修改一下自己的信息&#xff0c;用户名后面提交代码的时候要…

frida反检测

一、frida介绍 简单来说&#xff0c;Frida是一个动态代码插桩框架。这意味着它能够在程序运行的时候&#xff0c;不改变原有程序代码的情况下&#xff0c;让你往里面添加自己的代码片段。这听起来可能有点像魔法&#xff0c;但实际上&#xff0c;它是通过一种叫做“HOOK”的技术…

解构复合人工智能系统(Compound AI Systems):关键术语、理论、思路、实践经验

编者按&#xff1a; 大模型的出现为构建更智能、更复杂的人工智能系统带来了新的契机。然而&#xff0c;单一的大模型难以应对现实世界中错综复杂的问题&#xff0c;需要与其他模块相结合&#xff0c;构建出复合人工智能系统&#xff08;Compound AI Systems&#xff09;。 本文…

wordpress 访问文章内容页 notfound

解决&#xff1a; 程序对应的伪静态规则文件.htaccess是空的 网站根目录下要有 .htaccess 文件&#xff0c;然后将下面的代码复制进去。 <ifmodule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRew…

AI领域最伟大的论文检索网站

&#x1f4d1; 苏剑林&#xff08;Jianlin Su&#xff09;开发的“Cool Papers”网站旨在通过沉浸式体验提升科研工作者浏览论文的效率和乐趣。这个平台的核心优势在于利用Kimi的智能回答功能&#xff0c;帮助用户快速了解论文的常见问题&#xff08;FAQ&#xff09;&#xff0…

STL-Setmap

前言 大家好&#xff0c;我是jiantaoyab&#xff0c;我们将进入到CSTL 的学习。STL在各各C的头文件中&#xff0c;以源代码的形式出现&#xff0c;不仅要会用&#xff0c;还要了解底层的实现。源码之前&#xff0c;了无秘密。 STL六大组件 Container通过Allocator取得数据储存…

多标签分割

https://github.com/PaddlePaddle/PaddleSeg/blob/release/2.9/configs/multilabelseg/README_cn.md

el-select选项框内容过长

利用popper-class实现选项框内容过长&#xff0c;截取显示功能&#xff1a; <el-select popper-class"popper-class" :popper-append-to-body"false" v-model"value" placeholder"请选择"><el-optionv-for"item in opt…

大模型prompt实例:知识库信息质量校验模块

大模型相关目录 大模型&#xff0c;包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步&#xff0c;扬帆起航。 大模型应用向开发路径&#xff1a;AI代理工作流大模型应用开发实用开源项目汇总大模…

war包放在tomcat服务器中,服务启动之后war包并没有正常展开如何解决?

这里我问题出现的是 XWiki 的 WAR 包未能自动展开&#xff0c;于是尝试手动解压并部署。下面是手动解压 WAR 包的步骤思路展示&#xff1a; 1. 准备目录 首先&#xff0c;创建一个新的目录用于存放解压后的文件。在 webapps 目录中创建一个名为 xwiki 的目录&#xff1a; mkd…

webjars学习

webjars介绍 官网&#xff1a;WebJars - Web Libraries in Jars github: WebJars GitHub 文档&#xff1a;WebJars - Documentation WebJAR 是一个用于管理Web前端依赖的工具。它允许开发者将特定的客户端库&#xff08;如JavaScript、CSS等&#xff09;打包成JAR&#xf…

【打工日常】云原生之搭建一款轻量级的开源Markdown笔记工具

一、flatnotes介绍 1.flatnotes简介 一个自托管的&#xff0c;无数据库的笔记网络应用程序&#xff0c;利用平面文件夹的markdown文件进行存储。 2.项目特点 A.干净简单的用户界面B.响应式移动端界面C.原生/所见即所得Markdown编辑模式D.高级搜索功能E.笔记“标签”功能F.…

安服仔番外——IaaS、PaaS、SaaS

云安全也是很重要的一个方向&#xff0c;当然了&#xff0c;今天开启这一篇的目的是up发现安服仔们需要懂的东西很多&#xff0c;确实不只局限于所谓的设备、漏扫、渗透之类的大家明面上都懂的&#xff0c;持续学习&#xff01;恰好up所在的项目对云接触很多&#xff0c;那就刚…

Rank Math Pro插件下载 - 您的SEO优化新引擎

在当今数字时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;对于任何希望提升在线可见性和吸引更多访客的网站来说都是至关重要的。Rank Math Pro是一款先进的SEO插件&#xff0c;专为WordPress网站设计&#xff0c;它能够帮助网站管理员和内容创作者轻松实现SEO最佳实…

撤销及变更:31个自然基金项目!

本周投稿推荐 SSCI • 2区社科类&#xff0c;3.0-4.0&#xff08;社科均可&#xff09; EI • 计算机工程类&#xff08;接收广&#xff0c;录用极快&#xff09; SCI&EI • 4区生物医学类&#xff0c;1.5-2.0&#xff08;录用率99%&#xff09; • 1区工程类&#…

Oracle到PostgreSQL的不停机数据库迁移

1970 年&#xff0c;数据库之父 Edgar Frank Codd 发表了“数据的关系模型”论文&#xff0c;该论文为往后的关系型数据库的发展奠定了基础。1979 年&#xff0c;基于关系模型理论的数据库产品 Oracle 2 首次亮相&#xff0c;并在过去的三四十年时间里&#xff0c;横扫全球数据…

开放式耳机哪个品牌好?性能超强的五款耳机推荐!速来码住!

运动已经融入了我们的日常生活&#xff0c;组团徒步、爬山、跑步、骑行等项目都收到了很人的喜爱。运动加耳机的组合也成了年轻人热爱的方式&#xff0c;在激烈运动的过程中往往会照成颠簸&#xff0c;在佩戴耳机上稳固性和舒适性就变得很重要了&#xff0c;因此开放式蓝牙耳机…

408算法题专项-2019年

题目&#xff1a; 分析&#xff1a;要求空间复杂度为O&#xff08;1&#xff09;&#xff0c;我们可以逆向假设可以开空间&#xff0c;得出一种思路&#xff0c;然后对这种思路优化空间即可得到O&#xff08;1&#xff09; 思路一&#xff1a;假设开空间 思考&#xff1a;再开…

【初阶数据结构】单链表之环形链表

目录标题 前言环形链表的约瑟夫问题环形链表环形链表|| 前言 前面我们已经学习了关于单链表的一些基本东西&#xff0c;今天我们来学习单链表的一个拓展——环形链表&#xff0c;我们将用力扣和牛客网上的三道题目来分析讲解环形链表问题。 环形链表的约瑟夫问题 我们首先来看…

iOS性能指标和性能测试工具

一&#xff1a; iOS性能测试指标 作为一名软件测试工程师&#xff0c;在测试 iOS 应用的性能时&#xff0c;需要关注以下几个方面&#xff1a; 1. 响应时间&#xff1a;应用的启动时间、页面加载速度、接口响应时间等。 2. CPU 使用率&#xff1a;应用在各种操作下的 CPU 占…