LeetCode第125场双周赛个人题解

news2024/11/25 0:21:09

目录

100231. 超过阈值的最少操作数 I

原题链接

思路分析

AC代码

100232. 超过阈值的最少操作数 II

原题链接

思路分析

AC代码

100226. 在带权树网络中统计可连接服务器对数目

原题链接

思路分析

AC代码

100210. 最大节点价值之和

原题链接

思路分析

AC代码


100231. 超过阈值的最少操作数 I

原题链接

超过阈值的最少操作数 I - 力扣 (LeetCode) 竞赛

思路分析

签到题,没啥说的

AC代码

class Solution {
public:
    int minOperations(vector<int>& nums, int k) {
        sort(nums.begin(), nums.end());
        return lower_bound(nums.begin(), nums.end(), k) - nums.begin();
    }
};

100232. 超过阈值的最少操作数 II

原题链接

100232. 超过阈值的最少操作数 II

思路分析

数组放到小根堆,检测是否全部大于等于k

如果有小于k的,就弹出俩元素,添加新元素

AC代码

class Solution
{
public:
    int minOperations(vector<int> &nums, int k)
    {
        long long res = 0, a, b;
        priority_queue<long long, vector<long long>, greater<long long>> pq;
        for (auto x : nums)
            pq.emplace(x);

        while (pq.top() < k)
            a = pq.top(), pq.pop(), b = pq.top(), pq.pop(), pq.emplace(a * 2 + b), res++;

        return res;
    }
};


100226. 在带权树网络中统计可连接服务器对数目

原题链接

  100226. 在带权树网络中统计可连接服务器对数目

思路分析

枚举中间服务器c,顺序从邻接点往下遍历,假如对某个邻接点遍历,得到可被整除路径数目为tot,之前遍历到的可被整除路径数目为s,那么根据乘法原理,答案要增加tot*s

计算中间服务器c的贡献需要O(N),n个点计算一遍是O(N^2)

AC代码

const int N = 1005, M = N * N;
class Solution
{
public:
    struct edge
    {
        int v, w, nxt;
    } edges[M];
    int head[N], idx = 0;
    void addedge(int u, int v, int w)
    {
        edges[idx] = {v, w, head[u]}, head[u] = idx++;
    }
    vector<int> countPairsOfConnectableServers(vector<vector<int>> &g, int signalSpeed)
    {
        int n = g.size() + 1, tot = 0;
        memset(head, -1, sizeof head), idx = 0;
        vector<int> ret(n);
        for (auto &e : g)
            addedge(e[0], e[1], e[2]), addedge(e[1], e[0], e[2]);
        function<void(int, int, int)> dfs = [&](int u, int fa, long long pre)
        {
            if ((pre % signalSpeed) == 0)
                tot++;
            for (int i = head[u]; ~i; i = edges[i].nxt)
            {
                int v = edges[i].v;
                if (v == fa)
                    continue;
                dfs(v, u, pre + edges[i].w);
            }
        };
        for (int u = 0, s = 0; u < n; u++)
        {
            s=0;
            for (int i = head[u], v; ~i; i = edges[i].nxt)
            {
                tot = 0, v = edges[i].v, dfs(v, u, edges[i].w);
                ret[u] += s * tot, s += tot;
            }
        }

        return ret;
    }
};

100210. 最大节点价值之和

原题链接

最大节点价值之和 - 力扣 (LeetCode) 竞赛

思路分析

我们考虑,最终得到的最大数组和原数组相比看,可不可能只有奇数个元素发生变化

答案是不可能,自己可以模拟一下

因此必然有偶数个数发生变化

而对于numi和numj如果发生变化,我们一定可以做到只改变numi和numj而不影响其它元素

只要把路径上的边都操作一遍即可

所以问题就变成了偶数个数目进行异或k后数组的最大和

这个线性dp即可,跟树没关系

AC代码

class Solution {
public:
    long long maximumValueSum(vector<int>& nums, int k, vector<vector<int>>& edges) {
        long long f0 = 0, f1 = -1e9, t;
        for(int x : nums) t = f0, f0 = max(f0 + x, f1 + (x ^ k)), f1 = max(t + (x ^ k), f1 + x);
        return f0;
    }
};

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

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

相关文章

【动态规划】第十一届蓝桥杯省赛第二场C++ C组《数字三角形》(c++)

1.题目描述 上图给出了一个数字三角形。 从三角形的顶部到底部有很多条不同的路径。 对于每条路径&#xff0c;把路径上面的数加起来可以得到一个和&#xff0c;你的任务就是找到最大的和。 路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右边的那个数。 …

kafka启动命令、查看topic命令、查看消息内容命令

kafka启动命令 cd /opt/kafka/kafka_2.12-3.5.1/bin ./kafka-server-start.sh ../config/server.properties Windows环境下用kafka Tool 连不上虚拟机的broker报了unable to connect broker 0&#xff0c; 但是zookeeper可以连接上 server.properties的listeners改为listene…

Oracle定时任务和存储过程

--1.声明定时任务 DECLAREjob NUMBER; BIGIN dbms_job.sumit(job, --任务ID,系统定义的test_prcedure(19)&#xff0c;--调用存储过程&#xff1f;to_date(20240305 02:00&#xff0c;yyyymmdd hh24:mi) --任务开始时间sysdate1/(24*60) --任务执行周期 [每分钟执行…

1818294-46-0,马来酰亚胺-PEG8-羧酸,能够在各种酸碱条件下保持稳定的性能

您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;1818294-46-0&#xff0c;马来酰亚胺-PEG8-羧酸&#xff0c;Mal PEG8 COOH&#xff0c;Maleimide PEG8 acid 一、基本信息 【产品简介】&#xff1a;Maleimide PEG8 acid is an excellent water-soluble compound t…

【玩转数据库mysql】最全mysql数据库安装使用教程,史上最详细保姆式喂饭教程(图文结合)

安装运行mysql目录 涉及知识写在前面演示效果一、mysql是否安装检测1.1 cmd命令行1.2 查看服务进程 二、下载mysql2.1 点击下载2.2 跳过登陆直接下载 三、解压配置并安装3.1 解压安装包3.2创建my.ini3.3 编辑my.ini,3.4 在bin目录输入cmd回车3.5初始化mysql&#xff08;找密码&…

大数据权限认证 Kerberos 部署

文章目录 1、什么是 Kerberos2、Kerberos 术语和原理2.1、Kerberos 术语2.1、Kerberos 原理 3、Kerberos 服务部署3.1、前置条件3.2、安装依赖3.3、配置 krb5.conf3.4、配置 kdc.conf3.5、配置 kadm5.acl3.6、安装 KDC 数据库3.7、启动服务3.8、创建 Kerberos 管理员3.9、创建普…

分巧克力 刷题笔记

/* 分巧克力 解题思路 二分 直接检查看答案是否符合题目条件 对于一块边长分别为x 和y的巧克力\\ 假设我们输入检查的数为k 其能分割成的 k*k 的巧克力的块数为 (x/k)*(y/k) 因为c里面的除法是下取整的所以我们不用考虑奇偶数 是否能整除 将每一块巧克力能分成的k*k的巧克力…

MyCAT学习——在openEuler22.03中安装MyCAT2(网盘下载版)

准备工作 因为MyCAT 2基于JDK 1.8开发。也需要在虚拟机中安装JDK&#xff08;JDK官网就能下载&#xff0c;我这提供一个捷径&#xff09; jdk-8u401-linux-x64.rpmhttps://pan.baidu.com/s/1ywcDsxYOmfZONpmH9oDjfw?pwdrhel下载对应的tar安装包,以及对应的jar包 安装程序包…

【笔记版】edgecore.yaml分析总结

1. 文件路径 /etc/kubeedge/config edgecore.yaml是该目录下唯一的文件 附上链接&#xff1a;edgecore.yaml 2. 文件生成方式 2.1 方式一 使用keadm安装部署的方式&#xff0c;执行完keadm join --cloudcore-ipportcloudcore监听的IP地址:端口&#xff08;默认为10002&…

嵌入式驱动学习第二周——断言机制

前言 这篇博客来聊一聊C/C的断言机制。 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程&#xff0c;未来预计四个月将高强度更新本专栏&#xff0c;喜欢的可以关注本博主并订阅本专栏&#xff0c;一起讨论一起学习。现在关注就是老粉啦&#xff01; 目录 前言1. 断言介绍…

沉浸式翻译——当翻译插件遇上ChatGPT

最近发现一款超好用的翻译插件——沉浸式翻译&#xff0c;强烈推荐!* 二话不说&#xff0c;先上效果: 翻译前 翻译后: 好评如潮: 如何安装: 1、找到插件地址并安装 其它浏览器请行查找&#xff01; 2、安装完后&#xff0c;会显示这个图标 (安装后会显示 Pro 会员页面&#xf…

MQL5学习之简单移动平均线MA的编写

昨天还是有点高估自己了&#xff0c;MACD相对较难一点&#xff0c;改学MA的编写&#xff0c;首先明确MA的计算&#xff0c;假如有4个值&#xff0c;p[1&#xff0c;2&#xff0c; 3&#xff0c; 4], period3, 则v[0]p[0], v[1]p[1],v[2](p[0]p[1]p[2])/32, v[3](v[2]*3p[3]-p…

xss.haozi.me:0x08

</style ><script> alert(1)</script>

商业运作之流量之谜,粉丝增长100%

从业13年工作需要才写了这个博客&#xff0c;13年累计粉丝15个&#xff0c;哈哈我是不是太佛系了&#xff1f; 如今走上了创业之路偶尔也会遇到一些技术难题&#xff0c;我都会把解决问题的思路和方法同步到博客&#xff0c;没想到短短半年粉丝从15增长到了30。之前我并没有认…

谷歌新一代Gemini 1.5多模态模型, 最长可达100万token上下文窗口

Google在人工智能领域已经发布了自己的Gemini大模型&#xff0c;其Gemini模型是一个多模态模型&#xff0c;不仅可以支持文字输入&#xff0c;还支持图片输入。而在Gemini ultra发布不久&#xff0c;Gemini 1.5大模型也相继发布。Gemini 1.5在多个维度上都有了显著的改进&#…

Shell管道和过滤器

一、Shell管道 Shell 还有一种功能&#xff0c;就是可以将两个或者多个命令&#xff08;程序或者进程&#xff09;连接到一起&#xff0c;把一个命令的输出作为下一个命令的输入&#xff0c;以这种方式连接的两个或者多个命令就形成了管道&#xff08;pipe&#xff09;。 重定…

模拟算法题练习(一)(扫雷,灌溉,回文日期)

目录 模拟算法介绍&#xff1a; &#xff08;一、扫雷&#xff09; &#xff08;二、灌溉&#xff09; &#xff08;三、回文日期&#xff09; 有一说一这题大佬的题解是真的强 模拟算法介绍&#xff1a; 模拟算法通过模拟实际情况来解决问题&#xff0c;一般容易理解但是实…

探索Linux世界:初次接触和基本指令(文件操作)

文章目录 1.基本介绍和准备2.基本指令和Linux的基本操作3.几个重要基本指令3.1 ls - 列出文件和目录3.1.1文件的知识3.1.2 .和..文件 3.2pwd - 显示当前工作目录3.2.1路径知识 3.3 cd - 切换目录3.4 touch - 创建文件或更新时间戳3.5mkdir - 创建新目录3.6rm - 删除文件或目录3…

22.基于springboot + vue实现的前后端分离-汽车票网上预定系统(项目 + 论文PPT)

项目介绍 系统是一个B/S模式系统&#xff0c;采用Spring Boot框架&#xff0c;MySQL 数据库设计开发&#xff0c;充分保证系统的稳定性。系统具有界面清晰、操作简单&#xff0c;功能齐全的特点&#xff0c;使得汽车票网上预订系统管理工作系统化、规范化。本系统的使用使管理人…

解决prettier 报错 Delete `␍`

根目录&#xff08;么有的话&#xff09;新建 .prettierrc.js配置文件 module.exports {tabWidth: 2,semi: true,printWith: 80,singleQuote: true,quoteProps: consistent,htmlWhitespaceSensitivity: strict,vueIndentScriptAndStyle: true,// 主要是最后一行endOfLine:aut…