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

 

//赛后补题
#include<bits/stdc++.h>
using namespace std;
int main(){int t,n,i;string s,s1="DFS",s2="dfs";cin>>t;while(t--){cin>>n;//getchar();cin>>s;int a=0,b=0;for(i=0;i<n;i++){if(s[i]==s1[a])a++;if(s[i]==s2[b])b++;}if(a==3)cout<<"1 ";else cout<<"0 ";if(b==3)cout<<"1\n";else cout<<"0\n";}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;
}

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

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

相关文章

yolov8使用旋转框自己做数据集检测

主要在数据集制作&#xff0c;训练的步骤和目标检测是一样的 1.数据集标注主要使用rolabelimg工具&#xff0c;这个工具不能在线安装 得下载源代码 然后运行 标注好数据保存会是一个xml文件 2.把xml文件转换成dota的xml文件&#xff0c;然后把dota的xml文件转换成dota的txt文件…

文献速递:肿瘤分割---- 弱监督肝肿瘤分割,使用Couinaud区段标注

文献速递&#xff1a;肿瘤分割---- 弱监督肝肿瘤分割&#xff0c;使用Couinaud区段标注 01 文献速递介绍 肝癌是世界上导致癌症死亡的主要原因之一&#xff0c;也是第二大常见的癌症死因。本稿件于2021年10月28日收到&#xff0c;2021年11月24日修订&#xff0c;2021年12月1…

Qt 字符串类应用与常用基本数据类型

目录 操作字符串 查询字符串 Qt 常见数据类型 操作字符串 创建一个控制台项目 &#xff08;1&#xff09;QString提供一个二元的 “” 操作符&#xff0c;主要用于组合两个字符串。QString str1 "Hello World 传递给QString一个 const char* 类型的ASCII字符串 “He…

『 C++ - STL 』unordered_xxx系列关联式容器及其封装(万字)

文章目录 &#x1f3a1; unordered系列关联式容器&#x1f3a1; 哈希表的改造&#x1f3a2; 节点的设置与总体框架&#x1f3a2; 迭代器的封装&#x1f3a0; 迭代器的框架&#x1f3a0; operator()运算符重载&#x1f3a0; 其余成员函数/运算符重载 &#x1f3a2; 迭代器begin(…

C++之std::tuple(一) : 使用精讲(全)

相关系列文章 C之std::tuple(一) : 使用精讲(全) C三剑客之std::variant(一) : 使用 C三剑客之std::variant(二)&#xff1a;深入剖析 深入理解可变参数(va_list、std::initializer_list和可变参数模版) std::apply源码分析 目录 1.简介 2.std::ignore介绍 3.创建元组 3.1.…

C语言中的内存函数你知道多少呢?

目录 ​编辑 1. memcpy的使用和模拟实现 1.1函数介绍 ​编辑 1.2函数的使用 1.3模拟实现 2. memmove的使用和模拟实现 2.1函数介绍 2.2函数的使用 2.3模拟实现 3. memset函数的使用 3.1函数介绍 3.2函数的使用 ​编辑 4. memcmp函数的使用 4.1函数介绍 4.2函数…

debian12 - openssh-9.6.P1的编译安装

文章目录 debian12 - openssh-9.6.P1的编译安装概述笔记备注END debian12 - openssh-9.6.P1的编译安装 概述 在debian12上, 源码编译安装了openssl3.2 导致ssh失败. lostspeeddebian12d4x64:~$ openssl version OpenSSL 3.2.0 23 Nov 2023 (Library: OpenSSL 3.2.0 23 Nov 2…

HCIA-HarmonyOS设备开发认证V2.0-3.轻量系统内核基础

目录 一、前言二、LiteOS-M系统概述三、内核框架3.1、CMSIS 和 POSIX 整体架构3.2、LiteOS-M内核启动流程 四、内核基础4.1、任务管理4.2、时间管理(待续)4.3、中断管理(待续)4.4、软件定时器(待续) 五、内存管理5.1、静态内存(待续)5.2、动态内存(待续) 六、内核通信机制6.1、…

从差旅申请到易快报,企业如何通过聚道云实现流程自动化?

客户介绍 深圳某有限公司是一家专注于软件开发与解决方案。公司主要提供全面的技术支持和服务&#xff0c;涵盖了多个领域&#xff0c;包括但不限于教育、企业级服务、工具类软件等。该公司产品旨在为每一所学校、每一个学生及家庭提供简单高效的编程创作体验和专业服务&#…

Linux内核与驱动面试经典“小”问题集锦(4)

接前一篇文章&#xff1a;Linux内核与驱动面试经典“小”问题集锦&#xff08;3&#xff09; 问题5 问&#xff1a;Linux内核中内存分配都有哪些方式&#xff1f;它们之间的使用场景都是什么&#xff1f; 备注&#xff1a;这个问题是笔者近期参加蔚来面试时遇到的一个问题。这…

React+Antd实现省、市区级联下拉多选组件(支持只选省不选市)

1、效果 是你要的效果&#xff0c;咱们继续往下看&#xff0c;搜索面板实现省市区下拉&#xff0c;原本有antd的Cascader组件&#xff0c;但是级联组件必须选到子节点&#xff0c;不能只选省&#xff0c;满足不了页面的需求 2、环境准备 1、react18 2、antd 4 3、功能实现 …

【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏14(附项目源码)

本节最终效果演示 文章目录 本节最终效果演示系列目录前言给树添加动画摇晃动画 效果&#xff08;后补效果&#xff09;源码完结 系列目录 前言 欢迎来到【制作100个Unity游戏】系列&#xff01;本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第23篇中&…

春节回家坐飞机后助听器就不好用了?如何过安检、拖运?

春节即将来临&#xff0c;很多人都要乘坐飞机回家或者出游。如果你是一位助听器使用者&#xff0c;你可能会有一些疑问&#xff1a;坐飞机能戴助听器吗&#xff1f;助听器会不会受到安检设备的影响&#xff1f;直接将助听器放在传送带上可以吗&#xff1f;……别担心&#xff0…

RabbitMQ-5.消费者的可靠性

消费者的可靠性 5.消费者的可靠性5.1.消费者确认机制5.2.失败重试机制5.3.失败处理策略5.4.业务幂等性5.4.1.唯一消息ID5.4.2.业务判断 5.5.兜底方案 5.消费者的可靠性 当RabbitMQ向消费者投递消息以后&#xff0c;需要知道消费者的处理状态如何。因为消息投递给消费者并不代表…

U盘显示空间小于实际U盘空间的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

2024年【陕西省安全员C证】试题及解析及陕西省安全员C证复审考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 陕西省安全员C证试题及解析是安全生产模拟考试一点通总题库中生成的一套陕西省安全员C证复审考试&#xff0c;安全生产模拟考试一点通上陕西省安全员C证作业手机同步练习。2024年【陕西省安全员C证】试题及解析及陕西…

Java玩转《啊哈算法》解密回文之栈

菩萨清凉月&#xff0c;常游毕竟空&#xff0c;众生心垢净&#xff0c;菩提影现中。 这目录 这开头这代码地址栈案例代码优化建议类似扩展 这开头 各位女士们&#xff0c;先生们好&#xff01;本人最近在看《啊哈算法》&#xff0c;这本书写的确实还可以&#xff0c;很有趣味性…

IEC 104电力规约详细解读(三) - 遥信

1.功能简述 遥信&#xff0c;、即状态量&#xff0c;是为了将断路器、隔离开关、中央信号等位置信号上送到监控后台的信息。遥信信息包括&#xff1a;反应电网运行拓扑方式的位置信息。如断路器状态、隔离开关状态&#xff1b;反应一次二次设备工作状况的运行信息&#xff0c;如…

Leetcode刷题-(11~15)-Java+Python+JavaScript

算法是程序员的基本功&#xff0c;也是各个大厂必考察的重点&#xff0c;让我们一起坚持写算法题吧 遇事不决&#xff0c;可问春风&#xff0c;春风不语&#xff0c;即是本心。 我们在我们能力范围内&#xff0c;做好我们该做的事&#xff0c;然后相信一切都事最好的安排就可…

考研数据结构笔记(3)

顺序表存储结构 存储结构顺序结构定义基本操作的实现静态分配问题 动态分配代码功能 顺序表的特点: 顺序表小结顺序表的插入删除插入删除小结 顺序表的查找按位查找按值查找小结 存储结构 顺序结构 定义 线性表是具有相同数据类型的n(n>0)个数据元素的有限序列(每个数据元素…