第 370 场 LeetCode 周赛题解

A 找到冠军 I

在这里插入图片描述

枚举求强于其他所有队的队

class Solution {
public:int findChampion(vector<vector<int>> &grid) {int n = grid.size();int res = 0;for (int i = 0; i < n; i++) {int t = 0;for (int j = 0; j < n; j++)if (j != i)t += grid[i][j];if (t == n - 1) {res = i;break;}}return res;}
};

B 找到冠军 II

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

计数:若图中入度为 0 0 0 的点只有一个则该点为冠军,否则返回 − 1 -1 1

class Solution {
public:int findChampion(int n, vector<vector<int>> &edges) {vector<int> indeg(n);for (auto &ei: edges)indeg[ei[1]]++;vector<int> li;for (int i = 0; i < n; i++)if (indeg[i] == 0)li.push_back(i);if (li.size() != 1)return -1;return li[0];}
};

C 在树上执行操作以后得到的最大分数

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

动态规划:设 p [ c u r ] [ 0 ] p[cur][0] p[cur][0] 为在以 c u r cur cur 为根的子树上执行若干操作使得该子树是健康的 能得到的最大分数,设 p [ c u r ] [ 1 ] p[cur][1] p[cur][1] 为以 c u r cur cur 为根的子树各节点 v a l u e s values values 之和,有状态转移方程: p [ c u r ] [ 0 ] = { 0 , c u r 是叶子节点 m a x { v a l u e s [ c u r ] + ∑ j 是 c u r 的子节点 p [ j ] [ 0 ] , ∑ j 是 c u r 的子节点 p [ j ] [ 1 ] } , c u r 不是叶子节点 p[cur][0]=\left\{\begin{matrix} 0 & ,cur 是叶子节点\\ max\{ values[cur]+\sum_{j 是 cur的子节点} p[j][0],\;\sum_{j 是 cur的子节点} p[j][1] \} &,cur 不是叶子节点 \end{matrix}\right. p[cur][0]={0max{values[cur]+jcur的子节点p[j][0],jcur的子节点p[j][1]},cur是叶子节点,cur不是叶子节点

class Solution {
public:using ll = long long;long long maximumScoreAfterOperations(vector<vector<int>> &edges, vector<int> &values) {int n = edges.size() + 1;vector<int> e[n];for (auto &ei: edges) {e[ei[0]].push_back(ei[1]);e[ei[1]].push_back(ei[0]);}ll p[n][2];memset(p, -1, sizeof(p));//初始化状态function<ll(int, int, int)> get = [&](int cur, int type, int par) {//记忆化搜索if (p[cur][type] != -1)return p[cur][type];if (type == 0) {if (cur != 0 && e[cur].size() == 1)return p[cur][type] = 0;ll r1 = 0, r2 = values[cur];for (auto j: e[cur])if (j != par) {r1 += get(j, 1, cur);r2 += get(j, 0, cur);}return p[cur][type] = max(r1, r2);} else {ll r2 = values[cur];for (auto j: e[cur])if (j != par)r2 += get(j, 1, cur);return p[cur][type] = r2;}};return get(0, 0, 0);}
};

D 平衡子序列的最大和

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

动态规划 + 离散化 + 树状数组:设数组 c [ i ] = n u m s [ i ] − i c[i]=nums[i]-i c[i]=nums[i]i ,则 c c c 数组中非降序子序列的下标序列即为平衡子序列,所有可以对 c c c 数组进行离散化,然后定义状态 p [ i ] p[i] p[i] 为: c c c 数组中末尾元素为 i i i 的非降序子序列对应的平衡子序列在 n u m s nums nums 中的最大和,有状态转移方程: p [ i ] = m a x { n u m s [ i ] m a x { p [ j ] ∣ j ≤ i } + n u m s [ i ] p[i]=max\left\{\begin{matrix} nums[i]\\ max\{p[j] \;|\; j\le i \}+nums[i] \end{matrix}\right. p[i]=max{nums[i]max{p[j]ji}+nums[i] ,通过树状数组实现其中的前缀极值查询和单点更新

class Solution {
public:using ll = long long;int N;vector<ll> a;inline int lowbit(int x) {return x & -x;}void update(int loc, ll val) {// li[loc]=max(li[loc], val);for (; loc < N; loc += lowbit(loc))a[loc] = max(a[loc], val);}ll query(int loc) {// max{li[k] | 1<=k<=loc}ll res = INT64_MIN;for (; loc > 0; loc -= lowbit(loc))res = max(res, a[loc]);return res;}long long maxBalancedSubsequenceSum(vector<int> &nums) {int n = nums.size();vector<int> c(n);for (int i = 0; i < n; i++)c[i] = nums[i] - i;vector<int> t = c;sort(t.begin(), t.end());t.erase(unique(t.begin(), t.end()), t.end());for (int i = 0; i < n; i++)//离散化cc[i] = lower_bound(t.begin(), t.end(), c[i]) - t.begin();N = n + 1;a = vector<ll>(N, INT64_MIN);for (int i = 0; i < n; i++) {ll t1 = query(c[i] + 1);update(c[i] + 1, max(t1, 0LL) + nums[i]);}return query(n);}
};

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

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

相关文章

微信怎么批量保存大量照片

8-2 本文要解决的问题是自动或者快速地保存微信收到的图片的事情&#xff0c;如果你的工作中有一个事情是需要每天或者经常保存大量的从微信收到的图片或者视频的&#xff0c;也许本文适合你&#xff0c;本文介绍的方法&#xff0c;可以自动保存各个群或者人发来的图片和视频。…

STM32G030F6P6 芯片实验 (二)

STM32G030F6P6 芯片实验 (二) Hello World - GPIO LED 尝试了下, 从 0 开始建 MDK HAL M0plus Project, 成功点亮 LED了。 但是 ST-LINK跑着跑着, 码飞了! 不知飞哪去了。 只好拿 MX 建了个 MDK Base。 呼叫 SysTick HAL_Delay(), 切换 LED。 基本上都是一样的用法, 只是换…

2023年亚太杯APMCM数学建模大赛ABC题辅导及组队

2023年亚太杯APMCM数学建模大赛 ABC题 一元线性回归分析类 回归分析&#xff08;Regression Analysis)是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。   – 按涉及变量个数划分   • 一元回归分析   • 多元回归分析   – 按自变量和因变量之间关…

inno setup 运行时进行文件复制和替换

问题描述&#xff1a; 当我们采用 inno setup进行打包时&#xff0c;需要实现将安装包中的某个文件进行替换&#xff0c;而且我们知道在Winodws系统可以有xcopy和copy两个命令可以提供该功能&#xff1b;而xcopy命令进行文件复制时会有如下提示&#xff1a; 此时需要手动输入字…

基于社交网络算法的无人机航迹规划-附代码

基于社交网络算法的无人机航迹规划 文章目录 基于社交网络算法的无人机航迹规划1.社交网络搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用社交网络算法来优化无人机航迹规划。 …

python自动化运维——模拟键盘鼠标重复性操作Pyautoui

一、程序样式展示 将程序与cmd.xls文件放在同一文件夹&#xff0c;每一步的截图也放在当前文件夹 通过图片在屏幕上面进行比对&#xff0c;找到点击处进行自动化操作 自动化rpa测试 二、核心点 1.Pyautoui模块&#xff1a;主要针对图片进行定位pyautogui.locateCenterOnScree…

初识JVM

1. JVM内存区域划分 jvm在启动的时候&#xff0c;会申请到一整个很大的内存区域。整个一大块区域&#xff0c;不太好用。为了更方便使用&#xff0c;把整个区域隔成了很多区域&#xff0c;每个区域都有不同的作用。 本地方法栈 此处提到的栈和数据结构中的栈不是一个东西&…

左偏树学习笔记

定义 堆&#xff0c;是一棵树&#xff0c;且每个节点的键值都大于等于 / 小于其父亲的键值。 左偏树是一种可合并的堆&#xff0c;可以以 O ( log ⁡ n ) O(\log n) O(logn) 的复杂度实现合并。 性质 左偏树满足堆的性质。 我们设定一个值 dist \text{dist} dist&#xf…

【触想智能】工业显示器上市前的检测项目分享

工业显示器在上市前&#xff0c;需要做一项重要的工作&#xff0c;那就是工业显示器出厂前的产品可靠性检测。 工业显示器选择的测试项目相比商用端更为严格&#xff0c;常见的性能测试项目包括高温老化、防尘防水、电磁静电干扰、防摔防撞等&#xff0c;在工业级应用领域&…

《 Hello 算法 》 - 免费开源的数据结构与算法入门教程电子书,包含大量动画、图解,通俗易懂

这本学习算法的电子书应该是我看过这方面最好的书了&#xff0c;代码例子有多种编程语言&#xff0c;JavaScript 也支持。 《 Hello 算法 》&#xff0c;英文名称是 Hello algo&#xff0c;是一本关于编程中数据解构和算法入门的电子书&#xff0c;作者是毕业于上海交通大学的…

New Maven Project

下面两个目录丢失了&#xff1a; src/main/java(missing) src/test/java(missing) 换个JRE就可以跑出来了 变更目录

项目级asp.net框架的LIMS实验室管理系统源码

LIMS可用于管理完整的实验程序&#xff0c;从样品登记到检验、校核、审核到最终批准报告&#xff0c;建立在过程质量控制的基础上&#xff0c;对检测流程进行有效全面的管理&#xff0c;对影响质量的人、机、料、法、环因素加以控制&#xff0c;同时为质量改进提供数据依据。进…

Oracle-Ogg经典模式升级为集成模式步骤

​前言: Oracle Ogg集成模式比起经典模式功能更加的强大&#xff0c;支持更多的数据类型&#xff0c;压缩表同步&#xff0c;XA事务&#xff0c;多线程模式&#xff0c;PDB模式同步&#xff0c;RAC环境下抽取配置简单等新功能&#xff0c;所以可以选择将经典模式升级转化为集成…

操作系统复习(3)处理机调度与死锁

一、概述 1.1了解调度的层次 调度是指&#xff0c;在一个队列中&#xff0c;按照某种方法&#xff08;算法&#xff09;&#xff0c;选择一个合适的个体的过程。进程调度的功能就是按一定策略、动态地把CPU分配给处于就绪队列中的某一进程&#xff0c;并使之执行。 作业调度&…

CN考研真题知识点二轮归纳(4)

持续更新&#xff0c;上期目录&#xff1a; CN考研真题知识点二轮归纳&#xff08;4&#xff09;https://blog.csdn.net/jsl123x/article/details/134135134?spm1001.2014.3001.5501 1.既可以扩展网段又是二层的设备 网段一般指一个计算机网络中使用同一物理层设备&#xff…

47基于matlab的水印提取,将水印和载体进行图像融合

基于matlab的水印提取&#xff0c;将水印和载体进行图像融合&#xff0c;成为一体&#xff0c;可对合成图像进行加噪处理&#xff0c;剪切处理&#xff0c;小波压缩处理&#xff0c;旋转处理等操作&#xff0c;最后对合成图像实现水印提取&#xff0c;程序已调通&#xff0c;可…

分析:如何多线程运行测试用例

这是时常被问到的问题&#xff0c;尤其是UI自动化的运行&#xff0c;过程非常耗时&#xff0c;所以&#xff0c;所以多线程不失为一种首先想到的解决方案。 多线程是针对的测试用例&#xff0c;所以和selenium没有直接关系&#xff0c;我们要关心的是单元测试框架。 unittest …

【电路笔记】-谐波

谐波 文章目录 谐波1、概述2、频谱分析3、已知信号4、未知信号5、总结 周期性信号并不总是完美的正弦模式&#xff0c;例如我们之前有关 正弦波的文章之一中介绍的那样。 有时&#xff0c;信号确实可以是简单正弦波的叠加&#xff0c;它们被称为复杂波形。 在本文中&#xff0…

CodeWhisperer 的使用心得

文章作者&#xff1a;小SS 亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术&#xff0c;观点&#xff0c;和项目&#xff0c;并将中国优秀开发者或技术推荐给全球云社…

uniapp 解决H5跨域的问题

uniapp 解决h5跨域问题 manifest.json manifest.json文件中&#xff0c;点击“源码视图”,在此对象的最后添加以下代码&#xff1a; "h5" : {"devServer" : {"port" : 8080, //端口号"disableHostCheck" : true,"proxy" :…