牛客小白月赛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;
}

 

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

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

相关文章

YOLOv8优化策略:SENetV2,squeeze和excitation全面升级,效果优于SENet | 2023年11月最新成果

🚀🚀🚀本文改进: SENetV2,squeeze和excitation全面升级,作为注意力机制引入到YOLOv8,放入不同网络位置实现涨点 🚀🚀🚀YOLOv8改进专栏:http://t.csdnimg.cn/hGhVK 学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研; 1.SENetV2 论文:https://arxiv.org/…

【WPF.NET开发】WPF.NET桌面应用开发概述

本文内容 为何从 .NET Framework 升级使用 WPF 进行编程标记和代码隐藏输入和命令控件布局数据绑定图形和动画文本和版式自定义 WPF 应用 Windows Presentation Foundation (WPF) 是一个与分辨率无关的 UI 框架&#xff0c;使用基于矢量的呈现引擎&#xff0c;构建用于利用现…

版本控制系统Git学习笔记-Git分支操作

文章目录 概述一、Git分支简介1.1 基本概念1.2 创建分支1.3 分支切换1.4 删除分支 二、新建和合并分支2.1 工作流程示意图2.2 新建分支2.3 合并分支2.4 分支示例2.4.1 当前除了主分支&#xff0c;再次创建了两个分支2.4.2 先合并test1分支2.4.3 合并testbranch分支 2.5 解决合并…

利用socket打造一个聊天室

下面是一个简单的JavaFX聊天应用程序的实现。 创建项目并添加依赖 首先创建一个新的JavaFX项目。在pom.xml文件中添加以下依赖项&#xff1a; <dependencies><dependency><groupId>org.openjfx</groupId><artifactId>javafx-controls</art…

数据结构 / 队列 / 循环队列 / 概念

1. 定义 为充分利用向量空间&#xff0c;克服假溢出现象的方法是&#xff1a;将向量空间想象为一个首尾相接的圆环&#xff0c;并称这种向量为循环向量。存储在其中的队列称为循环队列&#xff08;Circular Queue&#xff09;。循环队列是把顺序队列首尾相连&#xff0c;把存储…

如何使用 NFTScan NFT API 在 Starknet 网络上开发 Web3 应用

Starknet 是由以色列软件公司 StarkWare 开发的免许可的第 2 层网络。Starknet 作为以太坊上的 ZK Rollup 运行&#xff0c;帮助 dApp 使用 STARK 证明以更低的交易成本实现更大的计算规模。该网络允许智能合约与区块链上部署的其他合约进行交互&#xff0c;从而提高协议之间的…

JNPF低代码平台详解 -- 系统架构

目录 一、技术介绍 技术架构 二、设计原理 三、界面展示 1.代码生成器 2.工作流程 3.门户设计 4.大屏设计 5.报表设计 6.第三方登录 7.多租户实现 8.分布式调度 9.消息中心 四、功能框架 JNPF低代码是一款新奇、实用、高效的企业级软件开发工具&#xff0c;支持企…

【Vue3+Ts项目】硅谷甄选 — 搭建后台管理系统模板

一、 项目初始化 一个项目要有统一的规范&#xff0c;需要使用eslintstylelintprettier来对我们的代码质量做检测和修复&#xff0c;需要使用husky来做commit拦截&#xff0c;需要使用commitlint来统一提交规范&#xff08;即统一提交信息&#xff09;&#xff0c;需要使用pre…

centos7 yum安装jdk1.8

1.列出可安装版本 yum -y list java* 2.安装 yum -y install java-1.8.0-openjdk* 3.检查命令 java -version javac java

新疆大学与优艾智合机器人成立联合创新实验室

11月22日至24日&#xff0c;第五届中国工业互联网大赛新疆赛站决赛在新疆维吾尔自治区昌吉回族自治州昌吉市举行。在大赛中崭露头角的优秀解决方案&#xff0c;将为绿色工厂、绿色园区、绿色供应链等建设提供新的动能&#xff0c;促进工业绿色发展。 作为大赛的成果延伸&#…

熬夜会秃头——beta冲刺Day3

这个作业属于哪个课程2301-计算机学院-软件工程社区-CSDN社区云这个作业要求在哪里团队作业—beta冲刺事后诸葛亮-CSDN社区这个作业的目标记录beta冲刺Day3团队名称熬夜会秃头团队置顶集合随笔链接熬夜会秃头——Beta冲刺置顶随笔-CSDN社区 目录 一、团队成员会议总结 1、成员…

MySQL 教程 1.4

MySQL 连接 使用mysql二进制方式连接 您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库。 实例 以下是从命令行中连接mysql服务器的简单实例&#xff1a; [roothost]# mysql -u root -p Enter password:****** 在登录成功后会出现 mysql> 命令提示窗…