第 363 场 LeetCode 周赛题解

news2024/10/7 4:28:02

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;
                else
                    r = 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.coloradmin.cn/o/1017718.html

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

相关文章

做一个有灵魂的软件测试员

有没有觉得自己每天的工作千篇一律&#xff0c;每天一上班就盼着下班&#xff1f; 一个月似乎能令自己开心的时间也就是发工资的那一天&#xff1f; 自己的工作生活总感觉被人牵着走&#xff0c;兜兜转转过了一年又一年&#xff1f; 测试员的工作性质决定了与重复、枯燥和乏…

自定义实现简易版ArrayList

文章目录 1.了解什么是顺序表2.实现哪些功能3.初始化ArrayList4.实现功能接口遍历顺序表判断顺序表是否已满添加元素指定下标添加元素自定义下标不合法异常判断顺序表是否为空查找指定元素是否存在查找指定元素返回下标获取指定下标的元素顺序表为空异常修改指定下标元素的值删…

【深度学习实验】线性模型(三):使用Pytorch实现简单线性模型:搭建、构造损失函数、计算损失值

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入库 1. 定义线性模型linear_model 2. 定义损失函数loss_function 3. 定义数据 4. 调用模型 5. 完整代码 一、实验介绍 使用Pytorch实现 线性模型搭建构造损失函数计算损失值 二、…

5-1 Dataset和DataLoader

Pytorch通常使用Dataset和DataLoader这两个工具类来构建数据管道。 Dataset定义了数据集的内容&#xff0c;它相当于一个类似列表的数据结构&#xff0c;具有确定的长度&#xff0c;能够用索引获取数据集中的元素。 而DataLoader定义了按batch加载数据集的方法&#xff0c;它是…

无涯教程-JavaScript - EVEN函数

描述 EVEN函数返回四舍五入到最接近的偶数整数的数字。您可以使用此功能来处理两个项目。 语法 EVEN (number)争论 Argument描述Required/OptionalNumberThe value to round.Required Notes 如果数字为非数字,则EVEN返回#VALUE!错误值。 不管数字的符号如何,当从零开始调…

VisualStudio配置驱动远程部署

目标机器开启ping命令 默认情况下&#xff0c;Windows出于安全考虑不允许外部主机对其进行Ping测试。 允许ICMP回显 设置如下&#xff1a; 打开win7防火墙设置界面 左边的菜单中选择 【高级设置】 在弹出的 【高级安全 Windows 防火墙】 界面&#xff0c;选择 【入站规则】 …

Java常见面试题(含答案,持续更新中~~)

目录 1、JVM、JRE和JDK的关系 2、什么是字节码&#xff1f;采用字节码的最大好处是什么 3、Java和C的区别与联系 4、Java和GO的区别与联系 5、 和 equals 的区别是什么&#xff1f; 6、Oracle JDK 和 OpenJDK 的对比 7、String 属于基础的数据类型吗&#xff1f; 8、fi…

VHOST-SCSI代码分析(3)数据流处理

VHOST SCSI数据流如下所示&#xff1a; IO下发过程 虚拟机中应用态程序下发IO&#xff0c;依次经过VFS/文件系统层&#xff0c;BLOCK层&#xff0c;SCSI层&#xff0c;经VIRTIO SCSI驱动virtscsi_commit_rqs访问寄存器通知HOST内核中VHOST设备&#xff08;VHOST KICK过程&#…

tolua源码分析(十一)代码生成

tolua源码分析&#xff08;十一&#xff09;代码生成 上一节我们分析了tolua中struct数据在lua和C#之间传递的过程&#xff0c;这一节我们来看一下tolua自动生成各种辅助代码的流程。 生成所有代码的入口位于ToLuaMenu.cs的GenLuaAll&#xff1a; [MenuItem("Lua/Genera…

达梦数据库-DW-国产化--九五小庞

武汉达梦数据库股份有限公司成立于2000年&#xff0c;是国内领先的数据库产品开发服务商&#xff0c;国内数据库基础软件产业发展的关键推动者。公司为客户提供各类数据库软件及集群软件、云计算与大数据等一系列数据库产品及相关技术服务&#xff0c;致力于成为国际顶尖的全栈…

读取yaml文件的值

记录一下&#xff0c;读取yaml文件中属性的值&#xff0c;这里用Kubernetes的deployment.yaml文件来举例。 读取yaml文件中的image的值 yaml文件 apiVersion: apps/v1 # 1.9.0 之前的版本使用 apps/v1beta2&#xff0c;可通过命令 kubectl api-versions 查看 kind: Deploy…

获取中文词组的汉语拼音首字母拼接

我们需要一个快捷批量处理&#xff1a;中文词组获取其汉语拼音首字母并拼接起来。 比如&#xff1a; 输出功率3&#xff1a;SCGL3 一鸣惊人&#xff1a;YMJR 我们可以采用字符字典法&#xff0c;穷举出所有的汉字【暂只考虑简体中文】 Dictionary<char,string> dict…

【数据分享】2006-2021年我国省份级别的市容环境卫生相关指标(20多项指标)

《中国城市建设统计年鉴》中细致地统计了我国城市市政公用设施建设与发展情况&#xff0c;在之前的文章中&#xff0c;我们分享过基于2006-2021年《中国城市建设统计年鉴》整理的2006—2021年我国省份级别的市政设施水平相关指标、2006-2021年我国省份级别的各类建设用地面积数…

【C++】STL—— unordered_map的介绍和使用、 unordered_map的构造函数和迭代器、 unordered_map的增删查改函数

文章目录 1. unordered_map的介绍2. unordered_map的使用2.1unordered_map的构造函数2.2unordered_map的迭代器2.3unordered_map的容量和访问函数2.4unordered_map的增删查改函数 1. unordered_map的介绍 unordered_map的介绍 &#xff08;1&#xff09;unordered_map是存储&l…

ElasticSearch(ES)简答了解

ES简介 Elasticsearch&#xff08;通常简称为ES&#xff09;是一个开源的分布式搜索和分析引擎&#xff0c;旨在处理各种类型的数据&#xff0c;包括结构化、半结构化和非结构化数据。它最初是为全文搜索而设计的&#xff0c;但随着时间的推移&#xff0c;它已经演变成一个功能…

web系统安全设计原则

一、前言 近日&#xff0c;针对西工大网络被攻击&#xff0c;国家计算机病毒应急处理中心和360公司对一款名为“二次约会”的间谍软件进行了技术分析。分析报告显示&#xff0c;该软件是美国国家安全局&#xff08;NSA&#xff09;开发的网络间谍武器。当下&#xff0c;我们发现…

【骑行之旅】昆明草海湿地公园和海晏村的美丽邂逅

这是一个九月的星期六&#xff0c;在昆明的大观公园门口&#xff0c;我们集合了一群热爱骑行的骑友。今天&#xff0c;阳光明媚&#xff0c;天空湛蓝&#xff0c;一切都充满了活力。我们的旅程从这里开始&#xff0c;一路向西&#xff0c;向着下一站&#xff0c;美丽的草海湿地…

虚拟机用户切换及设置root权限的密码

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

驱动开发,IO多路复用(select,poll,epoll三种实现方式的比较)

1.IO多路复用介绍 在使用单进程或单线程情况下&#xff0c;同时处理多个输入输出请求&#xff0c;需要用到IO多路复用&#xff1b;IO多路复用有select/poll/epoll三种实现方式&#xff1b;由于不需要创建新的进程和线程&#xff0c;减少了系统资源的开销&#xff0c;减少了上下…

从0到1搭建Halo博客系统教程

前期准备 云服务器&#xff0c;域名&#xff0c;命令工具&#xff08;这里使用是Mobaxterm&#xff09; 安装环境 宝塔面板 yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec在命令工…