牛客小白月赛82(A~C)

news2024/11/16 23:45:39

目录

A.谜题:质数

输入描述

输出描述

输入

输出

解析

B.Kevin逛超市 2 (简单版本)

输入描述

输出描述

输入

输出

思路

C.被遗忘的书籍

题目描述

输入描述

输出描述

输入

输出

输入

输出

思路


 

比赛链接

牛客小白月赛82_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com)

A.谜题:质数

 题目描述

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
 

给出一个质数 n,请求出一个质数 m,使得 n+m 不是质数。
其中,质数是指大于 1 的自然数,除了 1 和自身外,不能被其他自然数整除的数。

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
 

输入描述

仅输入一行,包含一个整数 n(2≤n≤2⋅105)n(2\leq n\leq 2\cdot 10^5)n(2≤n≤2⋅105),保证 nnn 是质数。

输出描述

仅输出一行。包含一个质数 m(2≤m≤2⋅1e5),表示答案。

如果有多个可行的答案,请输出任意一个。

可以证明,在题目所给条件下一定有解。

示例1

输入

复制

11

输出

复制

3

解析

此题解法有很多,由于m很小,这里采用了纯暴力思想, 用线性筛法筛出所有的质数,然后枚举满足条件的m即可。

#include <iostream>
#include <algorithm>

using namespace std;

const int N= 2e5+10;

int primes[N], cnt;
bool st[N];

void get_primes(int n)
{
    for (int i = 2; i <= n; i ++ )
    {
        if (!st[i]) primes[cnt ++ ] = i;
        for (int j = 0; primes[j] <= n / i; j ++ )
        {
            st[primes[j] * i] = true;
            if (i % primes[j] == 0) break;
        }
    }
}

int main()
{
    int n;
    cin >> n;

    get_primes(N-1);
	for(int i=2;i<=2e5;i++)
		if(st[i+n]) {
			cout<<i;
			break;
		}
    return 0;
}

B.Kevin逛超市 2 (简单版本)

 链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
 

两个版本唯一的不同是:简单版本中折扣券和立减券的数量均为 111,困难版本中折扣券和立减券的数量为给定值。

氧气少年在逛超市。

他总共买了 n 件商品,第 i 种商品的价格为 pi​。

超市有下面的打折政策:

  •  每名顾客有 1 张折扣券,可以让一件商品的价格打折(如果此商品原价为 pi​,那么使用此优惠券后,价格变为 pi×x%)。
  •  每名顾客有 1 张立减券,可以让一件商品的价格减小 y(如果此商品原价小于 y,那么可以花费 0 买下)。
  •  每个商品最多使用 1 张优惠券。

请求出氧气少年可能付出的最小的花费。

输入描述

第一行包含一个整数 T(1≤T≤1e5),表示测试用例的组数。

对于每组测试用例:

第一行包含三个整数 n(1≤n≤2⋅1e5),x(1≤x≤99),y(1≤y≤1e4)。
第二行包含 n 个整数 p1…pn (1≤pi≤1e4),表示商品的价格。

保证对于所有的测试用例,n 的总和不超过 2⋅1e5。

输出描述

对于每组测试用例:
仅输出一行,包含一个实数,表示答案。如果你的答案和标准答案的绝对误差或相对误差不超过 1e−4,则你的答案会被视为正确。

示例1

输入

复制

2
3 50 50
100 100 50
3 50 200
95 100 50

输出

复制

150.000000000000
97.500000000000

思路

贪心思想,让最大的两个采用上述两种方式,至于具体用哪个,无非两种方式,最大的用第一个方案,第二大的用第二个方案,反之又是一种,可以都枚举,然后取最小值,注意特判只有一个的时候。

#include<bits/stdc++.h>
#define int long long
#define d lld
using namespace std;
const int N=2e5+10;
int t,n;
double x,y;
double p[N];
bool st[N];

void solve() {
    cin>>n>>x>>y;
    for(int i=1;i<=n;i++) {
        cin>>p[i];
    }
    sort(p+1,p+n+1);
    if(n==1) {
        double ans=0;
        double y1=p[1]*x/100;
        double y2=max(0.0,p[1]-y);
        ans=min(y1,y2);
        printf("%.10lf\n",ans);
    }
    else {
        double ans=0;
        for(int i=1;i<=n-2;i++) ans+=p[i];
        double y1=p[n]*x/100;
        double y2=max(0.0,p[n-1]-y);
        ans=ans+y1+y2;

        double ans1=0;
        for(int i=1;i<=n-2;i++) ans1+=p[i];
        y1=p[n-1]*x/100;
        y2=max(0.0,p[n]-y);
        ans1=ans1+y1+y2;
        printf("%.10lf\n",min(ans,ans1));        
    }
}

signed main() {
    cin>>t;
    while(t--) solve();
    return 0;
}

C.被遗忘的书籍

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
 

题目描述

这里有一本包含 nnn 个小写英文字母的书籍,可惜的是书上的字体很模糊,并不知道具体的字符。但我们已经知道的是,这本书包含子串 "txt"。

其中,子串是指字符串中连续的一段字符序列。

请求出这本书籍的内容的可能的种类数量。答案对 998244353取模。

输入描述

第一行包含一个整数 T(1≤T≤2⋅1e5),表示测试用例的组数。

对于每组测试用例:

仅输入一行,包含一个整数 n(1≤n≤2⋅1e5)。

输出描述

对于每组测试用例:
仅输出一行,包含一个整数,表示答案。

示例1

输入

复制

3
2
3
4

输出

复制

0
1
52

示例2

输入

复制

3
199998
199999
200000

输出

复制

866730100
551952279
943410719

思路

 这题给人的第一感觉是组合计数,但是用状态压缩的思想更加方便。

引入四种状态

#include<bits/stdc++.h>
#define int long long 
using namespace std;
const int N=2e5+10,mod=998244353;
int t,n;
int dp[N][5];
signed main() {
    dp[0][0]=1;
    for(int i=1;i<N;i++) {
        dp[i][0]=(dp[i][0]+dp[i-1][0]*25+dp[i-1][1]*24+dp[i-1][2]*25)%mod;
        dp[i][1]=(dp[i][1]+dp[i-1][0]+dp[i-1][1])%mod;
        dp[i][2]=(dp[i][2]+dp[i-1][1])%mod;
        dp[i][3]=(dp[i][3]+dp[i-1][2]+dp[i-1][3]*26)%mod;
    }
    cin>>t;
    while(t--) {
        cin>>n;
        cout<<dp[n][3]<<"\n";
    }
    return 0;
}

 

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

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

相关文章

C#和MySQL技巧分享:日期的模糊查询

文章目录 前言一、EF Core 模糊查询二、MySql 日期模糊查询分析和优化2.1 测试环境准备2.1.1 创建数据库2.1.2 查看测试数据 2.2 查询日期的运行效率对比2.3 运行效率优化 三、EF Core 模糊查询优化3.1 字符串转日期3.2 使用日期格式查询 四、优化建议总结 前言 在处理数据库查…

CSS 多主题切换思路

前言 本篇仅提供多主题切换思路&#xff0c;示例简单且清晰。 实现 步骤一&#xff1a;多主题(颜色)定义 定义根伪类 :root&#xff0c;代码第 2 和 7 行。分别定义了默认和带参数的伪类&#xff1b;定义 CSS 变量&#xff0c;注意变量名需要以两个减号&#xff08;--&…

03数据仓库Flume

Flume 功能 Flume主要作用&#xff0c;就是实时读取服务器本地磁盘数据&#xff0c;将数据写入到 HDFS。 Flume是 Cloudera提供的高可用&#xff0c;高可靠性&#xff0c;分布式的海量日志采集、聚合和传输的系统工具。 Flume 架构 Flume组成架构如下图所示&#xff1a; A…

jQuery选择器、操作DOM、事件处理机制、动画、ADJX操作知识点梳理

jQuery 核心理念就是写的更少&#xff0c;做的更多实现的代码更加简洁有效的提高开发效率 jQuery跟JavaScript的用法是不一样的 跟jQuery相继诞生的JavaScript库还有很多&#xff0c;不包括node.js 关于代码$("li").get(0)&#xff0c;获取DOM对象 jQuery对象声…

MMdetection3.0 问题:DETR验证集上AP值全为0.0000

MMdetection3.0 问题&#xff1a;DETR验证集上AP值全为0.0000 条件&#xff1a; 1、选择的是NWPU-VHR-10数据集&#xff0c;其中训练集455张&#xff0c;验证、测试相同均为195张。 2、在Faster-rcnn、YOLOv3模型上均能训练成功&#xff0c;但是在DETR训练时&#xff0c;出现验…

前端学习系列之CSS

目录 CSS 简介 发展史 优势 基本语法 引用方式 内部样式 行内样式 外部样式 选择器 id选择器 class选择器 标签选择器 子代选择器 后代选择器 相邻兄弟选择器 后续兄弟选择器 交集选择器 并集选择器 通配符选择器 伪类选择器 属性选择器 CSS基本属性 优…

pycharm中绘制一个3D曲线

import numpy as np import matplotlib.pyplot as plt # 中文的设置 import matplotlib as mp1 from mpl_toolkits.mplot3d import Axes3D mp1.rcParams["font.sans-serif"] ["kaiti"] mp1.rcParams["axes.unicode_minus"] False # 数据创建 X…

Python过滤掉特定区域内的矩形框

Python过滤掉特定区域内的矩形框 前言前提条件相关介绍实验环境过滤掉特定区域内的矩形框方法一&#xff1a;直接法&#xff08;for循环遍历&#xff09;代码实现输出结果 方法二&#xff1a;列表推导式代码实现输出结果 前言 由于本人水平有限&#xff0c;难免出现错漏&#x…

51k+ Star!动画图解、一键运行的数据结构与算法教程!

大家好&#xff0c;我是 Java陈序员。 我们都知道&#xff0c;《数据结构与算法》 —— 是程序员的必修课。 无论是使用什么编程语音&#xff0c;亦或者是前后端开发&#xff0c;都需要修好《数据结构与算法》这门课&#xff01; 在各个互联网大产的面试中&#xff0c;对数据…

RocketMQ事务消息源码解析

RocketMQ提供了事务消息的功能&#xff0c;采用2PC(两阶段协议)补偿机制&#xff08;事务回查&#xff09;的分布式事务功能&#xff0c;通过这种方式能达到分布式事务的最终一致。 一. 概述 半事务消息&#xff1a;指的是发送至broker但是还没被commit的消息&#xff0c;在半…

【Linux】24、文件系统、磁盘 IO

文章目录 一、文件系统1.1 索引节点和目录项1.2 虚拟文件系统 VFS1.3 文件系统 I/O1.5 性能观测1.5.1 容量1.5.2 缓存1.5.3 find 命令的缓存 二、磁盘 I/O2.1 通用块层2.2 I/O 栈2.3 磁盘性能指标2.3.1 磁盘 I/O 观测2.3.2 进程 I/O 观测 2.4 案例&#xff1a;找到打大量日志的…

UiPath学习笔记

文章目录 前言RPA介绍UiPath下载安装组件内容 前言 最近有一个项目的采集调研涉及到了客户端的采集&#xff0c;就取了解了一下RPA和UIPATH&#xff0c;记录一下 RPA介绍 RPA&#xff08;Robotic Process Automation&#xff1a;机器人处理自动化&#xff09;&#xff0c;是…

聊聊什么是IO流

目录 Java IOIO 基础Java IO 流了解吗&#xff1f; IO 设计模式1、装饰器模式2、适配器模式适配器模式和装饰器模式有什么区别呢&#xff1f;3、工厂模式4、观察者模式 IO 模型有哪些常见的 IO 模型&#xff1f;BIO(Blocking I/O)NIO (Non-blocking/New I/O)AIO (Asynchronous …

Java包(package)

1、概念 为了更好的组织类&#xff0c;用于区别类名的命名空间&#xff0c;其实就是基于工程的一个文件路径&#xff0c;如&#xff1a; 2、作用 三个作用&#xff1a; 1&#xff09;区分相同名称的类。 2&#xff09;能够较好地管理大量的类。 3&#xff09;控制访问范围。 在…

网站实现验证码功能

一、验证码 一般来说&#xff0c;网站在登录的时候会生成一个验证码来验证是否是人类还是爬虫&#xff0c;还有一个好处是防止恶意人士对密码进行爆破。 二、流程图 三、详细说明 3.1 后端生成验证码 Override public Result<Map<String, String>> getVerifica…

国内哪个超声波清洗机品牌比较好?质量好超声波清洗机总结

近年来超声波清洗机可以说是非常火爆&#xff0c;可以清洗化妆刷、眼镜、牙套等等一些小物件&#xff0c;大物件物品可以入手大型超声波清洗机&#xff0c;总之现在超声波清洗机已经衍生到可以在家使用&#xff0c;不再是在眼镜店看到它的身影或者是一些工业领域上&#xff0c;…

第二节:服务拆分(案例)

一、服务拆分注意事项 1.1 拆分原则 每个微服务&#xff0c;不要重复开发相同业务&#xff08;例如在单体项目中用到了一个查询&#xff0c;这个查询功能能够查询出订单信息、商品信息、用户信息&#xff0c;那么在拆分微服务时就不要将其写在一起了&#xff0c;订单的微服务只…

1、RocketMQ源码分析(一)

RocketMQ简单介绍 RabbitMQ的底层是使用erlang语言编写的&#xff0c;不便分析其底层&#xff0c;RocketMQ作为原阿里下经历阿里双十一严格考验的中间件&#xff0c;同时也是使用我们熟悉的java语言编写&#xff0c;我们先把入门的基础必备了解透&#xff0c;然后在去分析源码…

基于WebSocket实现客户聊天室

目录 一、实现聊天室原理 二、聊天室前端代码 三、聊天室后端代码&#xff08;重点&#xff09; 四、聊天室实现效果展示 一、实现聊天室原理 1.1 介绍websocket协议 websocket是一种通信协议&#xff0c;再通过websocket实现弹幕聊天室时候&#xff0c;实现原理是客户端首…

使用K-means把人群分类

1.前言 K-mean 是无监督的聚类算法 算法分类&#xff1a; 2.实现步骤 1.数据加工&#xff1a;把数据转为全数字&#xff08;比如性别男女&#xff0c;转换为0 和 1&#xff09; 2.模型训练 fit 3.预测 3.代码 原数据类似这样(source&#xff1a;http:img-blog.csdnimg.cn…