【C++】 —— 笔试刷题day_25
一、笨小猴
题目解析
这道题,给定一个字符
str
,让我们找到这个字符串中出现次数最多字母的出现次数maxn
和出现次数最少字母的出现次数minn
;然后判断
maxn - minn
是否是一个质数,如果是就输出Lucky Word
和maxn - minn
;如果不是就输出No Answer
和0
。
算法思路
OK啊,这道题可以说是比较简单的,我们只需要遍历字符串str
,记录出现次数最多字母的出现次数maxn
和出现次数最少字母的次数minn
,然后判断maxn - minn
是否是一个质数即可。
统计每一个字符出现的次数
遍历字符串str
,统计每一个字符出现的次数(题目中说明:只存在小写字母,所以可以使用int cnt[26]
来统计每一个字符出现的次数)
找到maxn
和minn
统计完每个字母出现的次数以后,在遍历str
,找到在str
中出现过的字母的出现次数的最大值maxn
和最小值minn
即可;
判断maxn - minn
是否是一个质数
判断一个数是否是质数,这个就比较简单了;这里就不叙述了。
代码实现
#include <iostream>
#include <cmath>
using namespace std;int cnt[26];
string str;
bool isprim(int x) {if (x < 2)return false;for (int i = 2; i <= sqrt(x); i++) {if (x % i == 0)return false;}return true;
}
int main() {cin >> str;for (auto& e : str) {cnt[e - 'a']++;}int maxn = 0, minn = str.size() + 1;for (auto& e : str) {maxn = max(maxn, cnt[e - 'a']);minn = min(minn, cnt[e - 'a']);}if (isprim(maxn - minn))cout << "Lucky Word" << endl << maxn - minn << endl;elsecout << "No Answer" << endl << 0 << endl;return 0;
}
二、主持人调度(一)
题目解析
这道题,就有意思了;现在有
n
个活动,每一个活动都有开始时间start
和结束时间end
,在某一个时间内,一个主持人只能主持一个活动;现在要求我们判断只有一个主持人的情况下能否举办全部的活动?简单来说就是,让我们判断中某时间,是否存到多个活动同时举办;也就是说这些活动举办的时间不能有重复的部分。
算法思路
OK啊,这道题让我们判断能不能举办全部的活动,说的通俗一点就是让我们判断这些活动的举办时间(开始时间 - 结束时间)是否有重复的时间段。
那我们如何去判断呢?
在初次看到这道题时,博主的思路:使用一个表来记录每一个时间是否有活动在举行但是这样就太复杂了
- 对于这道题我们可以直接对给定的数组进行排序,这样所有活动就是按照开始时间升序排序的,也就是说从先开始的活动是排在前面的;
- 然后我们排序后的数组,从前往后遍历,只需判断一个活动开始时,前一个活动有没有结束即可(或者一个好的结束时,有没有到达后一个活动的开始时间)。
代码实现
class Solution {
public:bool hostschedule(vector<vector<int> >& schedule) {sort(schedule.begin(),schedule.end());for(int i = 1;i<schedule.size();i++){if(schedule[i-1][1] > schedule[i][0])return false;}return true;}
};
三、分割等和子集
题目解析
这道题,题目给定一个只包含正整数的数组
nums
,然后让我们判断,能否将数组中的若干个数取出,使得取出的数和剩下的数之和相等;简单来说就是在数组中选择若干个数,使得这些数的和等于所有数和的一半。
算法思路
初次看到这道题,可以说毫无思路;
这里就直接说解法了:动态规划 - 01
背包问题
看到这道题解法可能有疑问:这怎么去用动态规划啊?
我们这道题,让我们在一个数组找若干个数,这些数的和等于num/2
;那是不是可以理解为,在n
个数中寻找和为num/2
的若干个数。
OK啊,了解了这道题要使用动态规划去解决,那状态表示和状态转移方程该如何去找呢?
这里题目只要求我们判断能否找到,所以我们只需要知道在
n
个数中是否存在和为num/2
的若干个数即可。状态表示:
dp[i][j]
表示在i
个数中是否存在和为j
的若干个数。状态转移方程:对于第
i
个数nums[i]
,我们要考虑的就只有选还是不选这个数:如果选第
i
个数,我们就要在前i-1
个数中看是否能找到和为j - nums[i]
的若干个数(dp[i-1][j - nums[i]
);如果不选第
i
个数,我们就要在前i-1
个数中看是否能找到和为j
的若干个数(dp[i-1][j]
)。而我们只需要知道是否能够找到即可,无需考虑是否选择第
i
个数;所以状态转移方程:dp[i][j] = dp[i-1][j] || dp[i-1][j-nums[i]];
最后我们还要注意,判断是否能选第
i
个数:如果nums[i] > j
就表示不能选择第i
个数。初始化:
这里我们只需要初始化
dp[0][0]
就可以了(按理来说,我们需要将第0
列的所有位置填成true
;因为其表示在i
个数中选择和为0
的数,肯定是存在的(不选不就OK了))将
dp[0][0]
初始化成true
,在填表时,第一列也就会被填成true
。
当然这道题在填表之前,我们还要求nums
中所有数的和,咱进行一下判断:如果所有数的和sum
为奇数,那我们可以是找不到的(因为题目上说了所有数都是正整数);
最后我们只需要看dp[n][sum/2]
位置是true
还是false
即可
代码实现
#include <iostream>
using namespace std;
int nums[501];
bool dp[501][50001];
int n;
int main() {cin >> n;int sum = 0;for (int i = 0; i < n; i++) {cin >> nums[i];sum += nums[i];}if (sum % 2 == 1) {cout << "false" << endl;return 0;}dp[0][0] = true;for (int i = 1; i <= n; i++) {for (int j = 0; j <= sum / 2; j++) {if (nums[i] > j)dp[i][j] = dp[i - 1][j];else {dp[i][j] = dp[i - 1][j] || dp[i - 1][j - nums[i]];}}}if (dp[n][sum / 2])cout << "true" << endl;elsecout << "false" << endl;return 0;
}
到这里本篇文章就结束了,感谢各位的支持
继续加油!!!
相关文章:
【C++】 —— 笔试刷题day_25
一、笨小猴 题目解析 这道题,给定一个字符str,让我们找到这个字符串中出现次数最多字母的出现次数maxn和出现次数最少字母的出现次数minn; 然后判断maxn - minn是否是一个质数,如果是就输出Lucky Word和maxn - minn;如…...
terraform resource创建了5台阿里云ecs,如要使用terraform删除其中一台主机,如何删除?
在 Terraform 中删除阿里云 5 台 ECS 实例中的某一台,具体操作取决于你创建资源时使用的 多实例管理方式(count 或 for_each)。以下是详细解决方案: 方法一:使用 for_each(推荐) 如果创建时使…...
Office 三大组件Excel、Word、Access 里 VBA 区别对比
以下是Excel、Word和Access在VBA中的主要区别对比及详细说明: 核心对象模型 Excel Workbook(工作簿)→ Worksheet(工作表)→ Range(单元格区域) 核心围绕单元格数据处理,如 Cells(1,1).Value = "数据" Word Document(文档)→ Range(文本范围)→ Paragrap…...
Linux 进程基础(二):操作系统
目录 一、什么是操作系统:用户和电脑之间的「翻译官」🌐 OS 的层状结构🧩 案例解析:双击鼠标的「跨层之旅」 二、操作系统的必要性探究:缺乏操作系统的环境面临的挑战剖析🔑 OS 的「管理者」属性࿱…...
Java高并发处理核心技术详解:从理论到实战
高并发处理能力是衡量系统性能的重要指标。Java作为企业级开发的主力语言,提供了丰富的并发编程工具和框架。 一、Java并发基础 1.1 Java内存模型(JMM) 主内存与工作内存:每个线程拥有独立的工作内存,通过JMM协议与主…...
单细胞测序数据分析试验设计赏析(二)
单细胞测序数据分析试验设计赏析(二) 这次的单细胞测序数据分析的试验设计是单细胞测序分析机器学习(with SHAP分析),也是常见的试验设计之一,重点是可以用于筛选鉴定基因调控网络,也可以是构建…...
Docker 服务搭建
💢欢迎来到张翊尘的开源技术站 💥开源如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌💥 文章目录 Docker 服务搭建在 Ubuntu 上安装 Docker更新软件…...
4电池_基于开关电容的均衡
基于开关电容的均衡系统(Switched-Capacitor Equalization System) 开关电容均衡(Switched-Capacitor Equalization, SCE)是一种广泛应用于 电池组(如锂电池、超级电容组) 的主动均衡技术,通过电…...
Matlab/Simulink - BLDC直流无刷电机仿真基础教程(七) - 波形解析专题P2
Matlab/Simulink - BLDC直流无刷电机仿真基础教程(七) - 波形解析专题P2 前言一、缺相与相线错接解析二、电源电压波动三、电机感量及磁链变化四、负载突变及堵转五、换相时机不当及换相错误参考链接 前言 本系列文章分享如何使用Matlab的Simulink功能来…...
如何从GitHub上调研优秀的开源项目,并魔改应用于工作中?
在 Go 语言学习中,我们经常会去学习一些优秀的开源项目。但是学完之后,发现很快就忘记了或者学习效果并不好。学习一个开源项目最好的方式就是围绕这个开源项目进行实战。例如,直接魔改这个开源项目并应用于工作中。本文来介绍下如何调用&…...
【Java学习笔记】构造器
构造器(constructor)(又名构造方法) 作用:可以在创建对象时就初始化属性,注意不是创建 基本结构 [修饰符] 方法名(形参列表){方法体; }代码示例 public class 构造器 {public static void m…...
Redis 数据类型详解(一):String 类型全解析
文章目录 前言一、什么是 Redis 的 String 类型?二、常用命令1.SET2.GET3.MSET4.MGET5.INCR6.INCRBY7.INCRBYFLOAT8.SETNX9.SETEX 三、注意事项总结 前言 提示:这里可以添加本文要记录的大概内容: 在学习 Redis 的过程中,最基础也…...
JAVA---多态
面向对象三大特征:封装、继承、多态 多态 定义:同类型的对象,表现出的不同形态。 它允许不同类的对象通过同一个接口进行调用,并且在运行时根据实际对象类型执行不同的方法。 多态主要通过继承、接口和方法重写来实现。 表现形式…...
K8S的使用(部署pod\service)+安装kubesphere图形化界面使用和操作
master节点中通过命令部署一个tomcat 查看tomcat被部署到哪个节点上 在节点3中进行查看 在节点3中进行停止容器,K8S会重新拉起一个服务 如果直接停用节点3(模拟服务器宕机),则K8S会重新在节点2中拉起一个服务 暴露tomcat访…...
【Linux系统】第二节—基础指令(2)
hello ~ 好久不见 自己想要的快乐要自己好好争取! 云边有个稻草人-个人主页 Linux—本篇文章所属专栏—欢迎订阅—持续更新中 目录 本节课核心指令知识点总结 本节基本指令详解 07.man 指令 08.cp 指令 09.mv 指令 10.cat 指令 11.more 指令 12.less 指令 …...
Java设计模式: 实战案例解析
Java设计模式: 实战案例解析 在软件开发中,设计模式是一种用来解决特定问题的可复用解决方案。它们是经过实践验证的最佳实践,能够帮助开发人员设计出高质量、易于维护的代码。本文将介绍一些常见的Java设计模式,并通过实战案例解析它们在实际…...
ASP.NET MVC 入门与提高指南九
51. 时空数据处理与 MVC 应用拓展 51.1 时空数据概念 时空数据是指与时间和空间相关的数据,如地理信息系统(GIS)数据、交通流量数据、气象数据等,这些数据随时间和空间变化而变化。 51.2 在 MVC 应用中处理时空数据 地理信息系…...
算法学习时段效能分布
算法学习时段效能分布 晨间时段(06:00-09:00)核心优势最佳任务 午后时段(14:00-17:00)核心优势最佳任务 夜间时段(20:00-23:00)核心优势最佳任务 实证数据支持 晨间时段(06:00-09:00)…...
Linux环境部署iview-admin项目
环境:阿里云服务 系统:CentOS7.X系统 1、下载源码安装包 wget https://nodejs.org/dist/v14.17.3/node-v14.17.3-linux-x64.tar.xz2、解压并放入指定目录 tar -xf node-v14.17.3-linux-x64.tar.xz && mv node-v14.17.3-linux-x64 /usr/local/no…...
在 Ubuntu 系统中,查看已安装程序的方法
在 Ubuntu 系统中,查看已安装程序的方法取决于软件的安装方式(如通过 apt、snap、flatpak 或手动安装)。以下是几种常见方法: 通过 apt 包管理器安装的软件 适用于通过 apt 或 dpkg 安装的 .deb 包。 列出所有已安装的软件包&…...
c++26新功能——Pack indexing
一、模板编程 在模板编程中,有一个问题比较突出,就是对变参模板中参数的控制,比较麻烦。因为是变参,所以想把参数单独拿出来处理,就需要借助一些特殊的技巧,而这种特殊的技巧,往往为大多数开发…...
VSCode通过SSH连接VMware虚拟机
以下是关于VSCode通过SSH连接VMware虚拟机的原理、必要条件及注意事项的说明: 一、连接原理 SSH协议通信:SSH(Secure Shell)是一种加密网络协议,VSCode通过Remote-SSH插件将本地开发环境与虚拟机终端绑定&a…...
7 微调 黑盒蒸馏 突破伦理限制
简介 SecGPT-Distill 是我自己做的一个实验模型, 开源地址: 主要功能是进行模型微调和知识蒸馏而来 这次是运用微调技术,来突破现有模型在处理安全相关问题时的各种限制和约束 代码开源: https://github.com/godzeo/SecGPT-distill-boundless 不回答原理 大部…...
基于51单片机的温湿度控制器proteus仿真
地址: https://pan.baidu.com/s/1cENHPmF0XobqKg_7baZX3Q 提取码:1234 仿真图: 芯片/模块的特点: AT89C52/AT89C51简介: AT89C51 是一款常用的 8 位单片机,由 Atmel 公司(现已被 Microchip 收…...
牛客月赛115 C题-命运之弹 题解
原题链接 https://ac.nowcoder.com/acm/contest/107879/C 题目描述 解题思路 记录每个数字出现的次数。枚举使用「转瞬即逝」的位置,统计后边比当前数字更大的数的数量,进而统计、更新答案。 详细细节见代码,代码里有详细的注释解释。 代…...
视频转GIF
视频转GIF 以下是一个使用 Python 将视频转换为 GIF 的脚本,使用了 imageio 和 opencv-python 库: import cv2 import imageio import numpy as np """将视频转换为GIF图参数:video_path -- 输入视频的路径gif_path -- 输出GIF的路径fp…...
day15 python 复习日
作业: 尝试找到一个kaggle或者其他地方的结构化数据集,用之前的内容完成一个全新的项 目,这样你也是独立完成了一个专属于自己的项目。 要求: 1.有数据地址的提供数据地址,没有地址的上传网盘贴出地址即可。 2.尽可能与…...
性能优化实践:渲染性能优化
性能优化实践:渲染性能优化 在Flutter应用开发中,渲染性能直接影响用户体验。本文将从渲染流程分析入手,深入探讨Flutter渲染性能优化的关键技术和最佳实践。 一、Flutter渲染流程解析 1.1 渲染流水线 Flutter的渲染流水线主要包含以下几…...
【SimSession 】3:中继服务 linux和windows实现及MFC集成实现
实现目标 在 echo 测试程序启动时启动中继服务,并在 echo 程序退出时杀死中继进程。我们可以通过以下方式实现这一目标: linux设计 1 Process Management: 流程管理: Added fork() functionality to create a child process for the relay service添加了 fork()功能,…...
表驱动 FSM 在 STM32 上的高效实现与内存压缩优化——源码、性能与实践
目录 一、引言与背景 二、前提环境与依赖 三、表驱动 FSM 核心原理 四、内存压缩方案详解 4.1 稠密二维表(Dense Table) 4.2 稀疏表压缩(Sparse Table) 4.3 行压缩+Offset 4.4 位域打包(Bit‑Packing)...
windows鼠标按键自定义任意设置
因为用惯了Linux的鼠标中键的复制黏贴,发现windows下有完全可以实现类似自定义功能的软件,推荐一下: X Mouse Button Control。 免费版足够好用。 软件简介: X Mouse Button Control是一款专业的重新映射鼠标按钮的软件工具&…...
常用命令集合
安装Miniconda wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py310_22.11.1-1-Linux-x86_64.shpython 换清华源 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple鱼香ros wget http://fishros.com/install -O fishr…...
【图书管理系统】环境介绍、设计数据库和表、配置文件、引入依赖
0. 环境介绍 (1)JDK版本:JDK_8(JDK_1.8) (2)Java语言版本:8 (3)SpringBoot版本:2.6.13 (4)Maven仓库:阿里云 …...
【Linux】日志与策略模式、线程池
在了解了线程的基本概念和线程互斥与同步之后,我们可以以此设计一个简单的线程池。【Linux】线程-CSDN博客 【Linux】线程同步与互斥-CSDN博客 线程池也是一种池化技术。提前申请一些线程,等待有任务时就直接让线程去执行,不用再收到任务之…...
【神经网络与深度学习】生成模型-单位高斯分布 Generating Models-unit Gaussian distribution
引言 在生成模型的研究与应用中,单位高斯分布(标准正态分布)作为数据采样的基础扮演着至关重要的角色。其数学特性、潜在空间的连续性、灵活性以及通用性,使得生成模型能够高效且稳定地学习和生成样本。本文将详细探讨从单位高斯…...
通讯协议开发实战:从零到一打造企业级通信解决方案
简介 从工业控制到物联网,掌握主流通信协议开发是构建现代智能系统的核心能力。本文将通过深入分析CAN FD和MQTT两种关键协议的原理、特性及应用场景,结合TypeScript和Node.js技术栈,设计一个完整的实时运动控制系统开发案例。从协议解析到数据转换,再到系统集成,全程提供…...
《MATLAB实战训练营:从入门到工业级应用》工程实用篇-自动驾驶初体验:车道线检测算法实战(MATLAB2016b版)
《MATLAB实战训练营:从入门到工业级应用》工程实用篇-🚗 自动驾驶初体验:车道线检测算法实战(MATLAB2016b版) 大家好!今天我要带大家一起探索自动驾驶中一个非常基础但又至关重要的技术——车道线检测。我…...
【网络】什么是串口链路(Serial Link)?
在路由器上,串口链路(Serial Link)就是指路由器之间通过串行接口(serial interface)和串行电缆(通常是V.35、RS-232或同步串行线路)直接点对点相连的那一段连线。它和我们平常在局域网里用的以太…...
为了结合后端而学习前端的学习日志——【黑洞光标特效】
前端设计专栏 今天给大家带来一个超酷的前端特效——黑洞光标!让你的鼠标变成一个会吞噬光粒子的迷你黑洞,点击时还会喷射出绿色能量粒子!🌠 🚀 效果预览 想象一下:你的鼠标变成一个旋转的黑洞࿰…...
set autotrace报错
报错: SQL> set autotrace traceonly SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled SP2-0611: Error enabling STATISTICS report原因分析: 根据上面的错误提示“SP2-0618: Cannot find the Session Identifie…...
算法每日一题 | 入门-顺序结构-大象喝水
大象喝水 题目描述 一只大象口渴了,要喝 20 升水才能解渴,但现在只有一个深 h 厘米,底面半径为 r 厘米的小圆桶 (h 和 r 都是整数)。问大象至少要喝多少桶水才会解渴。 这里我们近似地取圆周率 π 3.14 \pi3.14 π…...
n8n 构建一个 ReAct AI Agent 示例
n8n 构建一个 ReAct AI Agent 示例 0. 引言1. 详细步骤创建一个 "When Executed by Another Workflow"创建一个 "Edit Fields (Set)"再创建一个 "Edit Fields (Set)"创建一个 HTTP Request创建一个 If 节点在 true 分支创建一个 "Edit Fiel…...
Scartch038(四季变换)
知识回顾 1.了解和简单使用音乐和视频侦测模块 2.使用克隆体做出波纹特效 3.取色器妙用侦测背景颜色 前言 我国幅员辽阔,不同地方的四季会有不同的美丽景色,这节课我带你使用程序做一个体现北方四季变化的程序 之前的程序基本都是好玩的,这节课做一个能够赏心悦目的程序。…...
【Linux】SELinux 的基本操作与防火墙的管理
目录 一、SELinux的管理 1.1 Linux 系统的安全机制 1.2 SELinux 的概述 1.3 SELinux 的配置 1.3.1 查看 SELinux 的工作方式 1.3.2 设置 SELinux 的工作方式 1.3.2.1 基于配置文件修改(推荐方式) 1.3.2.2 基于命令方式修改 二、防火墙管理 2.1 防…...
【React Hooks原理 - useCallback、useMemo】
useMemo用于缓存计算结果,它只在依赖项发生变化时重新计算 原理: 依赖项检查:useMemo接收2个参数,一个“创建”函数和一个依赖项数组。依赖项数组中的值在每次渲染时都会被比较,以决定是否需要重新计算 缓存机制&am…...
一格一格“翻地毯”找单词——用深度优先搜索搞定单词搜索
一格一格“翻地毯”找单词——用深度优先搜索搞定单词搜索 一、引子:别看题简单,实则套路深 说起“单词搜索”这个题目,初学者第一眼可能会说:“哦不就是个查字母吗?”其实,真没这么简单。 LeetCode 上那…...
深入了解 OpenIddict:实现 OAuth 2.0 和 OpenID Connect 协议的 .NET 库
在现代 Web 开发中,身份验证和授权是安全性的重要组成部分。随着对安全性的要求不断增加,OAuth 2.0 和 OpenID Connect(OIDC)协议已经成为许多应用程序的标准身份验证方式。而 OpenIddict,作为一个用于实现 OAuth 2.0 …...
学习黑客 TCP/IP
一句话总结:把 TCP/IP 看成大型多人在线游戏的“世界引擎”:链路层是地基,互联网层是道路,运输层是交通系统,应用层是景点与商店;协议们则是各种交通工具与技能(TCP 稳重的长途客车,…...
【沐风老师】3DMAX按元素UV修改器插件教程
3DMAX按元素UV修改器UV By Element是一个脚本化的修改器插件。对于需要创建随机化纹理效果的用户而言,3DMAX的UV By Element修改器无疑是一款高效工具,它将以伪随机量偏移、旋转和/或缩放每个元素的UV坐标。 【版本要求】 3dMax 2016及以上 【安装方法】…...
Jetpack Compose 边距终极指南:Margin 和 Padding 的正确处理方式
Jetpack Compose 边距终极指南:Margin 和 Padding 的正确处理方式 在 Android 开发中,Jetpack Compose 彻底改变了 UI 构建方式,但许多开发者对如何处理边距(Margin/Padding)感到困惑。本文将深入解析 Compose 的边距…...