筆試專題(十四)

文章目錄

  • 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
英文地址,請注明出處:http://en.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;摘要引言基礎可…