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

目录

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;
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C#Backgroundworker与Thread的区别

前言 当谈到多线程编程时&#xff0c;C#中的BackgroundWorker和Thread是两个常见的选择。它们都可以用于实现并行处理和异步操作&#xff0c;但在某些方面有一些重要的区别。本文将详细解释BackgroundWorker和Thread之间的区别以及它们在不同场景中的使用。 目录 前言1. Backgr…

微软 Power Platform 零基础 Power Pages 网页搭建教程学习实践进阶以及常见问题解答(二)

微软 Power Platform 零基础 Power Pages 网页搭建教程学习实践进阶及常见问题解答&#xff08;二&#xff09; Power Pages 学习实践进阶 微软 Power Platform 零基础 Power Pages 网页搭建教程学习实践进阶及常见问题解答&#xff08;二&#xff09;Power Pages 核心工具和组…

基于单片机设计的智能水泵控制器

一、前言 在一些场景中&#xff0c;如水池、水箱等水体容器的管理中&#xff0c;保持水位的稳定是至关重要的。传统上&#xff0c;人们通常需要手动监测水位并进行水泵的启停控制&#xff0c;这种方式不仅效率低下&#xff0c;还可能导致水位过高或过低&#xff0c;从而对水体…

在 AlmaLinux9 上安装Oracle Database 23c

在 AlmaLinux9 上安装Oracle Database 23c 0. 下载 Oracle Database 23c 安装文件1. 安装 Oracle Database 23c3. 连接 Oracle Database 23c4. &#xff08;谨慎&#xff09;卸载 Oracle Database 23c 0. 下载 Oracle Database 23c 安装文件 版权问题&#xff0c;下载地址请等待…

企业加密软件有哪些(公司防泄密软件)

企业加密软件是专门为企业设计的软件&#xff0c;旨在保护企业的敏感数据和信息安全。这些软件通过使用加密技术来对数据进行加密&#xff0c;使得数据在传输和存储过程中不会被未经授权的人员获取和滥用。 企业加密软件的主要功能包括数据加密、文件加密、文件夹加密、移动设备…

专业视频剪辑利器Final Cut Pro for Mac,让你的创意无限发挥

在如今的数字时代&#xff0c;视频内容已经成为人们生活中不可或缺的一部分。无论是在社交媒体上分享生活点滴&#xff0c;还是在工作中制作专业的营销视频&#xff0c;我们都希望能够以高质量、高效率地进行视频剪辑和制作。而Final Cut Pro for Mac作为一款专业级的视频剪辑软…

2023-12-01 AndroidR 系统在root目录下新建文件夹和创建链接,编译的时候需要修改sepolicy权限

一、想在android 系统的根目录下新建一个tmp 文件夹&#xff0c;建立一个链接usr链接到data目录。 二、在system/core/rootdir/Android.mk里面的LOCAL_POST_INSTALL_CMD 增加 dev proc sys system data data_mirror odm oem acct config storage mnt apex debug_ramdisk tmp …

20、Resnet 为什么这么重要

&#xff08;本文已加入“计算机视觉入门与调优”专栏&#xff0c;点击专栏查看更多文章信息&#xff09; resnet 这一网络的重要性&#xff0c;上一节大概介绍了一下&#xff0c;可以从以下两个方面来有所体现&#xff1a;第一是 resnet 广泛的作为其他神经网络的 back bone&…

麻吉POS集成:如何无代码开发实现电商平台和CRM系统的高效连接

麻吉POS集成的前沿技术&#xff1a;无代码开发 在竞争激烈的电商市场中&#xff0c;商家们急需一种高效且易于操作的技术手段来实现系统间的快速连接与集成。麻吉POS以其前沿的无代码开发技术&#xff0c;让这一需求成为可能。无代码开发是一种允许用户通过图形用户界面进行编…

RocketMQ事务消息源码解析

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

java引入jjwt时候报错Undable to load class named ...

原因是包没有引全,像下面这样写重新加载maven <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt-api</artifactId><version>0.11.1</version></dependency><dependency><groupId>io.jsonwebtoken…

mac安装elasticsearch

下载地址&#xff1a; Past Releases of Elastic Stack Software | Elastic https://www.elastic.co/cn/downloads/past-releases#elasticsearch 选择7.10版本 进入es bin目录下执行启动命令 ./elasticsearch 会报错 ./elasticsearch-env: line 126: syntax error near u…

使用Python免费调用通义千问大模型

Qwen-72b开源模型 模型的主要用途是预测或描述一个系统或现象的行为模式。它可以帮助人们更好地理解这个系统或现象&#xff0c;例如预测股市变化、天气预报、地震预警、交通流量等。模型也常用于设计和优化产品和工艺。在科学研究中&#xff0c;模型也是一种方法&#xff0c;用…

【开源】基于JAVA语言的校园电商物流云平台

项目编号&#xff1a; S 034 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S034&#xff0c;文末获取源码。} 项目编号&#xff1a;S034&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 商品数据模块2.3 快…

Leetcode 剑指 Offer II 055. 二叉搜索树迭代器

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer&#xff08;专项突击版&#xff09;系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 实现一个二叉搜索树迭代器类 BSTIterator &#xff0c;表示一个按…

03数据仓库Flume

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

力扣232-用栈实现队列

文章目录 力扣232-用栈实现队列示例代码实现总结收获 力扣232-用栈实现队列 示例 代码实现 class MyQueue {Deque<Integer> instack;Deque<Integer> outstack ;public MyQueue() {instacknew ArrayDeque<Integer>();outstacknew ArrayDeque<Integer>(…

scrapy介绍,并创建第一个项目

一、scrapy简介 scrapy的概念 Scrapy是一个Python编写的开源网络爬虫框架。它是一个被设计用于爬取网络数据、提取结构性数据的框架。 Scrapy 使用了Twisted异步网络框架&#xff0c;可以加快我们的下载速度。 Scrapy文档地址&#xff1a;http://scrapy-chs.readthedocs.io/z…

西南科技大学模拟电子技术实验三(BJT单管共射放大电路测试)预习报告

一、计算/设计过程 说明:本实验是验证性实验,计算预测验证结果。是设计性实验一定要从系统指标计算出元件参数过程,越详细越好。用公式输入法完成相关公式内容,不得贴手写图片。(注意:从抽象公式直接得出结果,不得分,页数可根据内容调整) 二、画出并填写实验指导书上…

前缀和 LeetCode1094 拼车

1094. 拼车 车上最初有 capacity 个空座位。车 只能 向一个方向行驶&#xff08;也就是说&#xff0c;不允许掉头或改变方向&#xff09; 给定整数 capacity 和一个数组 trips , trip[i] [numPassengersi, fromi, toi] 表示第 i 次旅行有 numPassengersi 乘客&#xff0c;接…