第 363 场 LeetCode 周赛题解

A 计算 K 置位下标对应元素的和

在这里插入图片描述
在这里插入图片描述

模拟

class Solution {
public:int pop_cnt(int x) {//求x的二进制表示中的1的位数int res = 0;for (; x; x >>= 1)if (x & 1)res++;return res;}int sumIndicesWithKSetBits(vector<int> &nums, int k) {int res = 0;for (int i = 0; i < nums.size(); i++)if (pop_cnt(i) == k)res += nums[i];return res;}
};

B 让所有学生保持开心的分组方法数

在这里插入图片描述

排序+枚举:首先对数组排序,设选出的学生的元素集合为 { x i } \{x_i\} {xi},未选的学生的元素集合为 { y i } \{y_i\} {yi},则有 m a x { x i } < ∣ { x i } ∣ < m i n { y i } max\{ x_i \} < |\{x_i\}| < min\{ y_i \} max{xi}<{xi}<min{yi},所有若存在选择方案,则选出学生一定是数组的一个前缀,且未选的学生是数组剩余的后缀,枚举可能的前后缀划分情况。

class Solution {
public:int countWays(vector<int> &nums) {sort(nums.begin(), nums.end());int n = nums.size();int res = 0;if (nums[n - 1] < n)//后缀为空res++;if (nums[0] > 0)//前缀为空res++;for (int i = 0; i < n - 1; i++) {//枚举前缀nums[0,i]if (nums[i] < i + 1 && nums[i + 1] > i + 1)res++;}return res;}
};

C 最大合金数

在这里插入图片描述
在这里插入图片描述

二分:因为所有合金都需要由同一台机器制造,所有枚举各台机器,二分查找能制造的最大合金数

class Solution {
public:using ll = long long;int maxNumberOfAlloys(int n, int k, int budget, vector<vector<int>> &composition, vector<int> &stock, vector<int> &cost) {int res = 0;for (auto &li: composition) {int l = 0, r = 3e8;while (l < r) {int mid = (l + r + 1) / 2;ll tmp = 0;for (int i = 0; i < n && tmp <= budget; i++) {if (1LL * mid * li[i] - stock[i] > 0)tmp +=(1LL * mid * li[i] - stock[i]) * cost[i];}if (tmp <= budget)l = mid;elser = mid - 1;}res = max(res, l);}return res;}
};

D 完全子集的最大元素和

在这里插入图片描述

质因数分解+哈希: 一组数字中每对元素的乘积都是一个完全平方数当且仅当数组中每个元素的奇数次质因子的集合相同 (例: 12 = 2 2 × 3 1 12=2^2\times 3^1 12=22×31 75 = 3 1 × 5 2 75=3^1\times 5^2 75=31×52,它们的奇数次质因子的集合都为 { 3 } \{3\} {3}),枚举元素同时更新奇数次质因子的集合对应的元素和。

class Solution {
public:using ll = long long;long long maximumSum(vector<int> &nums) {map<vector<int>, ll> s;ll res = 0;for (int i = 1; i <= nums.size(); i++) {int cur = i;vector<int> t;//cur的奇数次质因子的集合for (int f = 2; f * f <= cur; f++)//质因数分解if (cur % f == 0) {int cnt_f = 0;while (cur % f == 0) {cur /= f;cnt_f++;}if (cnt_f & 1)//f是奇数次质因子t.push_back(f);}if (cur != 1) {t.push_back(cur);}s[t] += nums[i - 1];//更新元素和}res = 0;for (auto &[_, si]: s)res = max(res, si);return res;}
};

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

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

相关文章

FFmpeg获取媒体文件的视频信息

视频包标志位 代码 printf("index:%d\n", in_stream->index);结果 index:0视频帧率 // avg_frame_rate: 视频帧率,单位为fps&#xff0c;表示每秒出现多少帧 printf("fps:%lffps\n", av_q2d(in_stream->avg_frame_rate));结果 fps:29.970070fps…

Linux文件属性操作函数

1.access函数 #include <unistd.h> int access(const char *pathname, int mode); 作用&#xff1a;判断某个文件是否有某个权限&#xff0c;或者判断文件是否存在 参数: -pathname:判断的文件路径 -mode: R_OK&#xff1a;判断是否有读权限 W_OK X_OK F_OK&#xff1a;…

【海报生成器源码】设计海报生成器网站开源源码(更新)

源码简介: 随着社会经济和商业发展&#xff0c;对产品宣传的需求也加大了。如何快速制作海报也成了很大的需求。这里分享的是一个海报生成器网站的最新源代码。 这个海报编辑器有着实用强大的功能&#xff0c;它的最左侧是组件列表。可以在最左侧选择组件&#xff0c;比如文本…

rman异机恢复的异常处理

因客户需要测试&#xff0c;使用生产环境的rman备份在虚拟机恢复中&#xff0c;忘记调整redo位置&#xff0c;打开时报错及处理过程。 SQL> alter database open resetlogs; alter database open resetlogs * ERROR at line 1: ORA-00344: unable to re-create online …

华为云云耀云服务器L实例评测 | 开启OPC UA之旅

OPC Unified Architecture (OPC UA)是一种用于工业自动化的M2M协议(Machine-to-machine)&#xff0c;具有平台独立性&#xff0c;在Windows和Linux上都可以运行。随着云服务在工业现场的不断普及&#xff0c;OPCUA服务也开始大量部署在云端。 本文以华为云云耀云服务器L为基础…

3D目标检测数据集 KITTI(标签格式解析、点云转图像、点云转BEV)

本文介绍在3D目标检测中&#xff0c;理解和使用KITTI 数据集&#xff0c;包括KITTI 的基本情况、下载数据集、标签格式解析、点云转图像、点云转BEV。 目录 1、KITTI数据集中3D框可视化的效果 2、先看个视频&#xff0c;了解KITTI 的基本情况 3、来到KITTI官网&#xff0c;下…

计算机竞赛 机器视觉的试卷批改系统 - opencv python 视觉识别

文章目录 0 简介1 项目背景2 项目目的3 系统设计3.1 目标对象3.2 系统架构3.3 软件设计方案 4 图像预处理4.1 灰度二值化4.2 形态学处理4.3 算式提取4.4 倾斜校正4.5 字符分割 5 字符识别5.1 支持向量机原理5.2 基于SVM的字符识别5.3 SVM算法实现 6 算法测试7 系统实现8 最后 0…

Docker Swarm集群部署

Docker Swarm集群部署 任务平台 3台虚拟机&#xff0c;一台作为manager 节点&#xff0c;另两台作为work节点。 文章目录 Docker Swarm集群部署安装docker配置防火墙开放端口在 manager 节点创建 Swarm 集群创建用于swarm服务的自定义的overlay网络测试跨主机容器通信 安装do…

React使用useImperativeHandle实现父组件触发子组件事件

相关知识&#xff1a; useImperativeHandle forwardRef 相关代码&#xff1a; 获取子组件实例&#xff0c;由于这是函数组件&#xff0c;没有this因此不能整体获取&#xff0c;我们可以通过useImperativeHandle获取想要的变量或者方法。 父组件import React, { useRef } fro…

【华为云云耀云服务器L实例评测|云原生】自定制轻量化表单Docker快速部署云耀云服务器

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…

CSS 浮动布局

浮动的设计初衷 float: left/right/both;浮动是网页布局最古老的方式。 浮动一开始并不是为了网页布局而设计&#xff0c;它的初衷是将一个元素拉到一侧&#xff0c;这样文档流就能够包围它。 常见的用途是文本环绕图片&#xff1a; 浮动元素会被移出正常文档流&#xff0c;…

TypeScript和JavaScript有什么不同?

TypeScript和JavaScript是两种不同的编程语言&#xff0c;它们有以下几点不同之处&#xff1a; 类型系统&#xff1a;TypeScript是JavaScript的超集&#xff0c;它引入了静态类型系统。这意味着在TypeScript中&#xff0c;可以声明变量、函数参数和返回值的类型&#xff0c;并进…

【算法|链表】环形链表Ⅱ

环形链表Ⅱ 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统…

无涯教程-JavaScript - COS函数

描述 COS函数返回给定Angular的余弦值。 语法 COS (number)争论 Argument描述Required/OptionalNumber The angle in radians for which you want the cosine.Required Notes 如果Angular以度为单位,则将Angular乘以PI()/180或使用RADIANS函数将Angular转换为弧度 弧度(…

Python 魔法方法

视频版教程 Python3零基础7天入门实战视频教程 Python的魔法方法&#xff0c;也称为特殊方法或双下划线方法&#xff0c;是一种特殊的方法&#xff0c;用于在类中实现一些特殊的功能。这些方法的名称始终以双下划线开头和结尾&#xff0c;例如__init__&#xff0c;repr&#x…

linux拨号上网

在Linux上进行拨号上网通常需要使用PPPoE&#xff08;Point-to-Point Protocol over Ethernet&#xff09;协议&#xff0c;这是一种用于通过以太网连接进行拨号上网的常见协议。以下是在Linux上设置PPPoE连接的一般步骤&#xff1a; 请注意&#xff0c;这些步骤可能会因你使用…

uniapp实现大气质量指标图(app端小程序端均支持,app-nvue不支持画布)

效果图如下&#xff1a; 思路&#xff1a; 1.首先我想到的就是使用图标库echarts或ucharts&#xff0c;可是找了找没有找到类似的。 2.其次我就想用画布来实现这个效果&#xff0c;直接上手。&#xff08;app-vue和小程序均可以实现&#xff0c;但是在app-nvue页面不支持画布…

成绩统计(蓝桥杯)

成绩统计 题目描述 小蓝给学生们组织了一场考试&#xff0c;卷面总分为 100 分&#xff0c;每个学生的得分都是一个 0 到 100 的整数。 如果得分至少是 60 分&#xff0c;则称为及格。如果得分至少为 85 分&#xff0c;则称为优秀。 请计算及格率和优秀率&#xff0c;用百分数…

033:跨域,vue端和 Nignx反向代理的配置详细解析

第033个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使…

Linux调试器-gdb使用

目录 一、gdb的使用 二、查看可执行程序的信息&#xff08;readelf&#xff09; 三、gdb常用的指令 1. 显示源代码&#xff08;list/l&#xff09; 2. 运行程序&#xff08;r或run&#xff09; 3. 在某一行设置断点&#xff08;b指令&#xff09; 4. 显示断点&#xff0…