笔试专题(十四)

文章目录

  • mari和shiny
    • 题解
    • 代码
  • 体操队形
    • 题解
    • 代码
  • 二叉树中的最大路径和
    • 题解
    • 代码

mari和shiny

题目链接
在这里插入图片描述

题解

1. 可以用多状态的线性dp
2. 细节处理:使用long long 存储个数
3. 空间优化:只需要考虑等于’s’,‘sh’,'shy’的情况,因为等于的情况,前面会保存起来,不需要统计

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

代码

#include<iostream>
#include<string>using namespace std;int main()
{int n;string str;cin >> n >> str;long long s = 0,sh = 0,shy = 0;for(int i = 0;i < n;i++){char ch = str[i];if(ch == 's') s++;else if(ch == 'h') sh += s;else if(ch == 'y') shy += sh;}cout << shy << '\n';return 0;
}

体操队形

题目链接
在这里插入图片描述

题解

1. dfs
2. 画出一颗决策树比什么都重要,一定要画图,然后仔细想,返回条件,剪枝,pos位置,每个位置枚举几个点啊,题目要求的剪枝等等

在这里插入图片描述

代码

#include<iostream>using namespace std;int n;
int a[15];
int ans;
bool vis[15];// 标记用过的数字void dfs(int pos)
{if(pos == n + 1){ans++;return;}for(int i = 1;i <= n;i++){// 剪枝// 如果不满足i排在a[i]的前面的话// if(vis[i]) continue;// 表示i这个点已经用过了,// 这个位置要枚举下一个点,看是否也用过了,剪枝// if(vis[a[i]]) return;// 2号这个点要放在1号前面,// 但是1号已经用过了,后面所有数都是错的了,所以剪枝if(vis[i] == false){// if(vis[a[i]]) return;// 为什么这句不能放在vis[i] = false的外面// 单独这句确实不行,因为i每次从1开始,会导致错误// 但下一次递归需要剪枝用过的点if(vis[a[i]]) return;// 未用过的点才会进来vis[i] = true;dfs(pos+1);// 为什么不能用i+1// o,因为每次进来都是i+1位置,// i都是1,i+1= 2每次都是二号位置vis[i] = false;}}return;
}
int main()
{cin >> n;for(int i = 1;i <= n;i++) cin >> a[i];dfs(1);cout << ans << '\n';return 0;
}

二叉树中的最大路径和

题目链接
在这里插入图片描述

题解

1. dfs,树形dp
2. 可以分解为子问题,求每条路径的最大单链和,为什么是单链和呢?因为不能走回头路,一个节点只能包含一次,那么可以求左子树的最大单链和,右子树的最大单链和
3. 返回值是以我为根节点的最大单链和,要么是我自己,要么是我自己加上右子树,要么是我自己加上左子树
4. 每次都需要更新最大的单链和,我自己加上左右子树,因为不一定经过根节点

在这里插入图片描述

在这里插入图片描述

代码

class Solution 
{
public:int ret = INT_MIN;int maxPathSum(TreeNode* root) {dfs(root);return ret;}// 要返回左右子树的最大单链和int dfs(TreeNode* root){if(root == nullptr) return 0;int left = max(dfs(root->left),0);int right = max(dfs(root->right),0);int k = root->val + left + right;ret = max(ret,k);return root->val + max(left,right);}
};

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

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

相关文章

LeetCode —— 94. 二叉树的中序遍历

&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️Take your time ! &#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️…

conda相关操作

安装torch 直接使用conda install torch1.12.0会报错&#xff0c;因为 Conda 通常使用 pytorch 作为包名&#xff08;而非 torch&#xff09; 正确使用方法&#xff1a; conda install pytorch1.12.0 -c pytorch使用 pip 安装 pip install torch1.12.0在 Conda 中查看可安装…

【Java面试笔记:进阶】26.如何监控和诊断JVM堆内和堆外内存使用?

监控和诊断JVM内存使用是优化性能和解决内存问题的关键。 1.JVM内存监控与诊断方法 1.图形化工具 JConsole:提供图形化界面,可直接连接到Java进程,查看内存使用情况。VisualVM:功能强大的图形化工具,但注意从Oracle JDK 9开始不再包含在JDK安装包中。Java Mission Contr…

AVIOContext 再学习

这个目前阶段用的不多&#xff0c;暂时不要花费太多精力。 url 的格式不同&#xff0c;使用的传输层协议也不同。这块看代码还没看到自己想的这样。 目前看的信息是&#xff1a;avformatContext 的 io_open 回调函数 在默认情况下叫 io_open_default&#xff0c;在解复用的 av…

在Java项目中实现本地语音识别与热点检测,并集成阿里云智能语音服务

引言 随着语音交互技术的发展&#xff0c;如何高效地处理用户的语音输入成为许多应用的重要课题。本文将详细介绍如何在一个Java项目中同时实现&#xff1a; 基于Vosk的本地语音识别&#xff1a;无需调用云端API即可完成语音到文本的转换。本地热点语音内容识别&#xff1a;对…

第15章 对API的身份验证和授权

第15章 对API的身份验证和授权 在构建RESTful API时,确保只有经过身份验证和授权的用户才能访问特定资源是至关重要的。身份验证是确认用户身份的过程,而授权则是决定用户是否有权访问特定资源的过程。在本章中,我们将详细探讨如何在ASP.NET Core Web API中实现身份验证和授…

asp.net客户管理系统批量客户信息上传系统客户跟单系统crm

# crm-150708 客户管理系统批量客户信息上传系统客户跟单系统 # 开发背景 本软件是给郑州某企业管理咨询公司开发的客户管理系统软件 # 功能 1、导入客户数据到系统 2、批量将不同的客户分配给不同的业务员跟进 3、可以对客户数据根据紧急程度标记不同的颜色&#xff0c…

深入理解现代JavaScript:从ES6+语法到Fetch API

引言 JavaScript作为Web开发的基石语言&#xff0c;近年来经历了翻天覆地的变化。ES6(ECMAScript 2015)的发布带来了革命性的新特性&#xff0c;而现代浏览器提供的API也让前端开发变得更加强大和高效。本文将深入探讨ES6核心语法、DOM操作优化技巧以及使用Fetch API进行异步请…

仙盟创梦IDE-智能编程,C#判断数组中是否存在key

一、net4 net core版本 使用LINQ的Contains方法 string[] array { "apple", "banana", "cherry" };string key "banana";bool exists array.Contains(key);if (exists){Console.WriteLine($"数组中存在键 {key}");}else…

360驱动大师v2.0(含网卡版)驱动工具软件下载及安装教程

1.软件名称&#xff1a;360驱动大师 2.软件版本&#xff1a;2.0 3.软件大小&#xff1a;218 MB 4.安装环境&#xff1a;win7/win10/win11 5.下载地址&#xff1a; https://www.kdocs.cn/l/cdZMwizD2ZL1?RL1MvMTM%3D 提示&#xff1a;先转存后下载&#xff0c;防止资源丢失&…

2025年- H22-Lc130-206. 反转链表(链表)---java版

1.题目描述 2.思路 使用迭代法 (1)定义一个前指针 (2)然后定义两个变量 curr&#xff08;head&#xff09;&#xff0c;curr.next。 (3)curr和curr.next交换位置&#xff08;只要当前指针不为空&#xff0c;执行两两交换&#xff09; 3.代码实现 /*** Definition for singly-…

机器学习常用评价指标

1. 指标说明 (1) AccuracyClassification&#xff08;准确率&#xff09; • 计算方式&#xff1a;accuracy_score(y_true, y_pred) • 作用&#xff1a; 衡量模型正确预测的样本比例&#xff08;包括所有类别&#xff09;。 公式&#xff1a; Accuracy TP TN TP TN FP…

CGI(Common Gateway Interface)协议详解

CGI&#xff08;通用网关接口&#xff09;是一种标准化的协议&#xff0c;定义了 Web服务器 与 外部程序&#xff08;如脚本或可执行文件&#xff09;之间的数据交互方式。它允许服务器动态生成网页内容&#xff0c;而不仅仅是返回静态文件。 1. CGI 的核心作用 动态内容生成&a…

2025.4.29总结

工作&#xff1a;最近手头活变得多起来了&#xff0c;毕竟要测两个版本&#xff0c;有时候觉得很奇怪&#xff0c;活少的时候&#xff0c;又想让别人多分点活&#xff0c;活多的时候&#xff0c;又会有些许不自然。这种反差往往伴随着项目的节奏&#xff0c;伴随着两个极端。所…

【KWDB 创作者计划】技术解读:多模架构、高效时序数据处理与分布式实现

技术解读&#xff1a;多模架构、高效时序数据处理与分布式实现 一、多模架构1.1 架构概述1.2 源码分析1.3 实现流程 二、高效时序数据处理2.1 处理能力概述2.2 源码分析2.3 实现流程 三、分布式实现3.1 分布式特性概述3.2 源码分析3.3 实现流程 四、总结 在当今数据爆炸的时代&…

# 前后端分离象棋对战项目开发记录

1. **结构清晰**&#xff1a;使用更直观的标题、分段和列表&#xff0c;增强可读性。 2. **视觉美观**&#xff1a;添加Markdown格式化&#xff08;如代码块、加粗、斜体&#xff09;&#xff0c;并建议配色和排版风格。 3. **内容精炼**&#xff1a;精简冗余表述&#xff0c;突…

HarmonyOS NEXT 诗词元服务项目开发上架全流程实战(一、项目介绍及实现效果)

在当今数字化时代&#xff0c;如何让传统文化与现代科技相结合&#xff0c;成为了一个值得思考的问题。诗词作为中国传统文化的重要组成部分&#xff0c;承载着丰富的历史信息和文化内涵。为了让更多人了解和欣赏诗词的魅力&#xff0c;我们决定开发一款基于HarmonyOS NEXT的诗…

linux jounery 日志相关问题

/var/log 目录 是 Linux 系统中存放各种日志文件的标准位置。 这些日志文件记录了系统及其服务的运行状态。 日志文件来源 系统日志 由 syslog 或 systemd-journald&#xff08;如果使用 systemd 的话&#xff09;等日志服务生成。记录内核消息和各种系统事件&#xff0c;例如…

JavaWeb学习打卡-Day7-正向代理、反向代理、Nginx

正向代理 概念&#xff1a;正向代理是一个位于客户端和目标服务器之间的代理服务器&#xff08;中间服务器&#xff09;。为了从目标服务器取得内容&#xff0c;客户端向代理服务器发送一个请求&#xff0c;并且指定目标服务器&#xff0c;之后代理向目标服务器转发请求&#…

AI算法可视化:如何用Matplotlib与Seaborn解释模型?

AI算法可视化&#xff1a;如何用Matplotlib与Seaborn解释模型&#xff1f; 系统化学习人工智能网站&#xff08;收藏&#xff09;&#xff1a;https://www.captainbed.cn/flu 文章目录 AI算法可视化&#xff1a;如何用Matplotlib与Seaborn解释模型&#xff1f;摘要引言基础可…