2024牛客寒假算法基础集训营1部分题解

2024-02-03 20:04

本文主要是介绍2024牛客寒假算法基础集训营1部分题解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

// 能力有限,做多少发多少。

A-DFS搜索

题目描述 

最近,fried-chicken完全学明白了DFS搜索(如上图所示)!于是学弟向他请教DFS搜索,fried-chicken热心的进行了讲解:

所谓DFS搜索,就是给定一个字符串�s,问能否找到�s的一个子序列,使得该子序列的值为 DFS 或 dfs。

请你分别判断字符串�s中是否含有 DFS 子序列与 dfs 子序列。

子序列的定义:从原字符串中选择一些字符,将这些字符按照其在原串中的顺序拼接起来,得到的就是原字符串的一个子序列。例如:ABCDA的子序列可以为ACA、ABCDA、BA等等,但不能为ABE、CBA、AAD。

输入描述:

输入的第一行包括一个正整数�(1≤�≤100)T(1≤T≤100),表示测试用例的组数。对每组测试用例,第一行是一个正整数�(1≤�≤50)n(1≤n≤50),表示输入字符串的长度。第二行是一个长度为�n的字符串�s,保证字符串中只含有英语小写字母与英语大写字母。

输出描述:

对于每组测试用例,输出空格分隔的两个数字,第一个数字表示是否含有 DFS 子序列,第二个数字表示是否含有 dfs 子序列。输出 1 表示含有,输出 0 表示不含有。

示例1

输入

复制

5
6
dafasa
6
dDFfSs
6
sfdDSF
6
DFSDFS
3
dfs

输出

复制

0 1
1 1
0 0
1 0
0 1

//刚开始想到的是find函数,后面发现不连续也可以,后面又怕下面种方法会超时,七弄八弄了不少时间。

#include<bits/stdc++.h>
using namespace std;
int main(){int t,n;string s;cin>>t;while(t--){int a=0,b=0;cin>>n;getchar();getline(cin,s);for(int i=0;i<n;i++){if(s[i]=='D'){for(int j=i+1;j<n;j++){if(s[j]=='F'){for(int k=j+1;k<n;k++){if(s[k]=='S')a=1;}}}}}for(int i=0;i<n;i++){if(s[i]=='d'){for(int j=i+1;j<n;j++){if(s[j]=='f'){for(int k=j+1;k<n;k++){if(s[k]=='s')b=1;}}}}}cout<<a<<' '<<b<<endl;}return 0;
}

E-why买外卖

题目描述

鸡很饿,鸡要吃外卖,今天点份炸鸡外卖!

鸡使用的外卖程序有若干个满减优惠,第iii个优惠可以表示为"满aia_iai​元减bib_ibi​元",多个满减优惠可以叠加。

满减的具体结算流程是:假设鸡购买的食物原价共为xxx元,则所有满足x≥aix\ge a_ix≥ai​的满减优惠都可以一起同时被使用,优惠后价格记为yyy,则鸡只要支付yyy元就可以了(若y≤0y\leq 0y≤0则不需要支付)。

现在,鸡的手机里一共只有mmm元钱,鸡想知道,他所购买的食物原价xxx最多为多少。

输入描述:

输入第一行包括一个整数T(1≤T≤104)T(1\leq T\leq 10^4)T(1≤T≤104),样例组数。对于每组样例,第一行输入两个整数n,m(1≤n≤105,1≤m≤109)n,m(1\leq n\leq 10^5, 1\leq m\leq 10^9 )n,m(1≤n≤105,1≤m≤109),含义如题面所述。接下来的nnn行,每行输入两个正整数ai,bi(1≤ai,bi≤109)a_i,b_i(1\leq a_i,b_i\leq 10^9)ai​,bi​(1≤ai​,bi​≤109),表示一个满减优惠。保证所有样例的Σn≤105\Sigma n\leq 10^5Σn≤105。

输出描述:

对每组用例,输出一个整数,表示鸡能购买的食物原价xxx最多为多少。

示例1

输入

复制4 1 10 100 80 2 10 30 10 100 90 3 10 100 30 100 30 100 30 2 10 21 10 1000 1

4
1 10
100 80
2 10
30 10
100 90
3 10
100 30
100 30
100 30
2 10
21 10
1000 1

输出

复制10 110 100 10

10
110
100
10

下面两个longlong定义的变量很关键,就差这儿。 

#include<bits/stdc++.h>
using namespace std;
struct xx{int a,b;
}s[100005];
bool cmp(xx x,xx y){return x.a>y.a;
}
int main(){int t,n,i;long long m,y;cin>>t;while(t--){cin>>n>>m;y=m;for(i=0;i<n;i++){cin>>s[i].a>>s[i].b;y+=s[i].b;}sort(s,s+n,cmp);for(i=0;i<n;i++){if(y>=s[i].a)m+=s[i].b;else y-=s[i].b;//这步很重要。}cout<<m<<endl;}return 0;
}

E-牛客老粉才知道的秘密

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

题目描述

现在,在本次比赛的主页点击"排名",您就会看到本场比赛的榜单,可以看到,榜单中直接列出了本场比赛的所有题目。

现在,作为牛客老粉,炸鸡想用这道题给大家科普一下牛客以前榜单的愚蠢之处:

牛客以前的榜单并不是现在这样,而是至多同时只显示六道题目。同时榜单上还有"向左"按钮与"向右"按钮来切换显示的题目。以"向右"按钮为例,点击一次该按钮会显示接下来的六道题,特别的,如果接下来的六道题超出了总题数,则会将最后一题放到当前显示的最右侧。"向左"按钮同理。

现在,你需要回答,对于nnn道题的一场比赛,显示的六道题目中最左侧的题目一共有几种可能取值。

以下面共n=14n=14n=14道题的情况为例:

 



初始时,显示了 A 到 F;点击一次"向右",显示了 G 到 L;再点击一次"向右",此时由于剩余题数不足六题,显示的六道题是 I 到 N;此时不能继续点击"向右",点击一次"向左",显示的六道题是 C 到 H;再点击一次"向左",由于剩余题数不足六题,显示的六道题是 A 到 F。

上述过程中,显示的六道题中,最左侧的题目编号分别是 A、G、I、C、A,因此答案为 4。

输入描述:

输入的第一行包括一个正整数T(1≤T≤105)T(1\leq T\leq 10^5)T(1≤T≤105),表示测试用例的组数。每组测试用例输入一个正整数n(6≤n≤109)n(6\leq n\leq 10^9)n(6≤n≤109),表示本场比赛的总题目数。

输出描述:

对每组测试用例,输出一个整数,表示显示的六道题目中最左侧的题目一共有几种可能取值。

示例1

输入

复制2 14 6

2
14
6

输出

复制4 1

4
1

//找规律

#include<bits/stdc++.h>
using namespace std;
int main(){int t,n;cin>>t;while(t--){cin>>n;if(n<=6)cout<<1<<endl;else {if(n%6==0)n/=6;else n=(n/6)*2;cout<<n<<endl;}}return 0;
}

这篇关于2024牛客寒假算法基础集训营1部分题解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/675243

相关文章

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

深入理解Mysql OnlineDDL的算法

《深入理解MysqlOnlineDDL的算法》本文主要介绍了讲解MysqlOnlineDDL的算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小... 目录一、Online DDL 是什么?二、Online DDL 的三种主要算法2.1COPY(复制法)

Spring的基础事务注解@Transactional作用解读

《Spring的基础事务注解@Transactional作用解读》文章介绍了Spring框架中的事务管理,核心注解@Transactional用于声明事务,支持传播机制、隔离级别等配置,结合@Tran... 目录一、事务管理基础1.1 Spring事务的核心注解1.2 注解属性详解1.3 实现原理二、事务事

Java中最全最基础的IO流概述和简介案例分析

《Java中最全最基础的IO流概述和简介案例分析》JavaIO流用于程序与外部设备的数据交互,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),处理... 目录IO流简介IO是什么应用场景IO流的分类流的超类类型字节文件流应用简介核心API文件输出流应用文

从基础到高级详解Python数值格式化输出的完全指南

《从基础到高级详解Python数值格式化输出的完全指南》在数据分析、金融计算和科学报告领域,数值格式化是提升可读性和专业性的关键技术,本文将深入解析Python中数值格式化输出的相关方法,感兴趣的小伙... 目录引言:数值格式化的核心价值一、基础格式化方法1.1 三种核心格式化方式对比1.2 基础格式化示例

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

从基础到进阶详解Python条件判断的实用指南

《从基础到进阶详解Python条件判断的实用指南》本文将通过15个实战案例,带你大家掌握条件判断的核心技巧,并从基础语法到高级应用一网打尽,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录​引言:条件判断为何如此重要一、基础语法:三行代码构建决策系统二、多条件分支:elif的魔法三、

Python WebSockets 库从基础到实战使用举例

《PythonWebSockets库从基础到实战使用举例》WebSocket是一种全双工、持久化的网络通信协议,适用于需要低延迟的应用,如实时聊天、股票行情推送、在线协作、多人游戏等,本文给大家介... 目录1. 引言2. 为什么使用 WebSocket?3. 安装 WebSockets 库4. 使用 We

从基础到高阶详解Python多态实战应用指南

《从基础到高阶详解Python多态实战应用指南》这篇文章主要从基础到高阶为大家详细介绍Python中多态的相关应用与技巧,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、多态的本质:python的“鸭子类型”哲学二、多态的三大实战场景场景1:数据处理管道——统一处理不同数据格式

MySQL数据类型与表操作全指南( 从基础到高级实践)

《MySQL数据类型与表操作全指南(从基础到高级实践)》本文详解MySQL数据类型分类(数值、日期/时间、字符串)及表操作(创建、修改、维护),涵盖优化技巧如数据类型选择、备份、分区,强调规范设计与... 目录mysql数据类型详解数值类型日期时间类型字符串类型表操作全解析创建表修改表结构添加列修改列删除列