自下而上的樹形dp

最大獨立集

?1.藍橋舞會

link:1.藍橋舞會 - 藍橋云課

分析:

code

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll MAXN = 1e5 + 7;
ll hpy[MAXN], fa[MAXN], dp[MAXN][2];
vector<ll> sons[MAXN];void dfs(ll u, ll fa)
{for(ll son : sons[u]){dfs(son, u);dp[u][0] += max(dp[son][1], dp[son][0]);dp[u][1] += dp[son][0];}
}int main()
{ll n; cin>>n;for(int i = 1; i <= n; i++) cin>>hpy[i];// init dpfor(int i = 1; i <= n; i++) dp[i][1] = hpy[i];for(int i = 1; i <= n - 1; i++){ll u, v; cin>>u>>v;sons[v].push_back(u);fa[u] = v;}// find rootll root = 1;while(fa[root] != 0) root = fa[root];dfs(root, 0);ll ans = max(dp[root][0], dp[root][1]);cout<<ans<<endl;return 0;
}

最小點覆蓋

例題:戰略游戲

link:P2016 戰略游戲 - 洛谷

分析:

code

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
using ll = long long;
const ll MAXN = 1507;
ll n, dp[MAXN][MAXN];
vector<ll> sons[MAXN];void dfs(ll root, ll fa)
{for (ll son : sons[root]){if (son == fa) continue;dfs(son, root);dp[root][0] += dp[son][1];dp[root][1] += min(dp[son][0], dp[son][1]);}
}int main()
{// inputcin >> n;for (int i = 0; i < n; i++){ll idx, k; cin >> idx >> k;for (int j = 1; j <= k; j++){ll s; cin >> s;sons[idx].push_back(s);sons[s].push_back(idx);}dp[idx][1] = 1;// init dp}// dfsdfs(0, -1);cout << min(dp[0][0], dp[0][1]) << endl;return 0;
}

最小支配集

例題:皇宮守衛

題目:U224284 [提高]皇宮看守 - 洛谷

分析:

code

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
using ll = long long;
const ll MAXN = 1507;
ll n, kk[MAXN], dp[MAXN][3], ind[MAXN];
vector<ll> g[MAXN];void dfs(ll root, ll fa)
{ll _min = 1e18;// dfsfor (ll son : g[root]){//if (son == fa) continue;dfs(son, root);dp[root][0] += min({ dp[son][0], dp[son][1], dp[son][2] });dp[root][1] += min(dp[son][0], dp[son][1]);dp[root][2] += dp[son][1];_min = min(_min, dp[son][0] - min(dp[son][0], dp[son][1]));}dp[root][0] += kk[root];dp[root][1] += _min;// 確保至少一個son是0狀態(根節點被選中)// 當root為葉子節點時, min為極大值,代表dp[root][1]狀態不可取;(葉子節點不可能滿足1狀態條件,在root子樹中不被選中同時又被支配
}int main()
{// inputcin >> n;for (int i = 1; i <= n; i++){ll idx, k, m; cin >> idx >> k >> m; kk[idx] = k;for (int j = 1; j <= m; j++){ll r; cin >> r;g[idx].push_back(r);ind[r]++;//g[r].push_back(idx);}}ll root;for (int i = 1; i <= n; i++){if (ind[i] == 0){root = i;break;}}dfs(root, 0);cout << min(dp[root][0], dp[root][1]) << endl;return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/920409.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/920409.shtml
英文地址,請注明出處:http://en.pswp.cn/news/920409.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Docker 詳解+示例

介 紹Docker 是一個開源的容器化平臺&#xff0c;它的核心目標是解決 “軟件在不同環境下運行不一致” 的問題&#xff0c;實現 “一次構建&#xff0c;到處運行” 。它基于 Linux 內核的底層技術&#xff0c;將應用程序及其依賴&#xff08;如庫文件、配置、運行環境等&#x…

洛谷 P2568 GCD-提高+/省選?

題目描述 給定正整數 nnn&#xff0c;求 1≤x,y≤n1\le x,y\le n1≤x,y≤n 且 gcd?(x,y)\gcd(x,y)gcd(x,y) 為素數的數對 (x,y)(x,y)(x,y) 有多少對。 輸入格式 只有一行一個整數&#xff0c;代表 nnn。 輸出格式 一行一個整數表示答案。 輸入輸出樣例 #1 輸入 #1 4輸…

軟件測試覆蓋率與質量保障專業經驗分享報告

測試覆蓋率的核心維度與評估標準 多維度定義與核心內涵 測試覆蓋率是衡量軟件測試完整性的關鍵指標體系,分為測試覆蓋率(黑盒視角:需求驗證程度)和代碼覆蓋率(白盒視角:代碼執行占比)兩大基礎類型。現代測試覆蓋體系已擴展至產品覆蓋、風險覆蓋、平臺/設備覆蓋、數據覆…

使用CCProxy搭建http/https代理服務器

下載 https://user.youngzsoft.com/ccproxy/update/ccproxysetup.exe 我們使用免費的即可&#xff0c;3個人。 啟動軟件 設置 更改局域網IP 我的電腦有多個IP&#xff0c;所以要手工指定。

ICCV 2025|TRACE:無需標注,用3D高斯直接學習物理參數,從視頻“預知”未來!

論文鏈接&#xff1a;https://arxiv.org/pdf/2507.01484導讀 準確預測道路智能體的運動對于自動駕駛的安全性至關重要。當前&#xff0c;現有的數據驅動方法直接預測未來軌跡&#xff0c;缺乏對駕駛行為的充分考慮&#xff0c;限制了可解釋性和可靠性。為此&#xff0c;本文引入…

TypeScript:symbol類型

symbol是TypeScript和JavaScript中的一種基本數據類型&#xff0c;表示唯一的、不可變的標識符。作為專業的前端工程師&#xff0c;理解symbol的特性對于構建安全可靠的代碼至關重要。1. symbol的核心特性唯一性&#xff1a;每個symbol值都是唯一的&#xff0c;即使創建時使用相…

【深度學習新浪潮】顯著性檢測最新研究進展(2022-2025)

1. 弱監督與主動學習 ASTE-AL框架(TPAMI 2024):提出對抗性時空集成主動學習方法,通過點標記數據集(每張圖像僅需10個標注點)達到全監督模型98%-99%的性能。其核心模塊包括: FPGD-PA對抗攻擊:通過無額外計算成本的自由梯度下降攻擊定位不確定像素。 時空集成策略:減少模…

Intern-S1-mini模型結構

模型介紹 Intern-S1-mini基于一個8B密集語言模型&#xff08;Qwen3&#xff09;和一個0.3B視覺編碼器&#xff08;InternViT&#xff09;&#xff0c;Intern-S1-mini 在5萬億個標記的多模態數據上進行了進一步預訓練&#xff0c;其中包括超過2.5萬億個科學領域的標記。這使得該…

linux 100個問答(持續更新)

1.常用命令 2.rsync常用命令rsync 是?個強?的?件同步和復制?具&#xff0c;?于在本地和遠程系統之間同步?件和目錄。以下是?些常用的 rsync 命令和選項&#xff1a;1. 基本的 rsync rsync 命令格式&#xff1a; bashCopy code rsync [options] source destination● sou…

零基礎玩轉STM32:深入理解ARM Cortex-M內核與寄存器編程

1. 什么是 STM32 STM32 是 ST&#xff08;意法半導體&#xff0c;STMicroelectronics&#xff09;公司推出的 32 位微控制器。 其內核基于 ARM Cortex-M 系列&#xff08;如 M0、M3、M4、M7&#xff09;&#xff0c;性能強大、功耗低、外設豐富。憑借高性價比和完善的生態&…

CentOS 修改密碼

在 CentOS&#xff08;以及大多數 Linux 系統&#xff09;下&#xff0c;你可以用以下命令打印當前用戶&#xff1a; whoami或者&#xff1a; echo $USER方法1&#xff1a;直接用 passwd 命令 直接用 passwd 命令修改&#xff1a; # 修改當前用戶密碼 passwd# 修改指定用戶密碼…

.NetCore 接入 Nacos,實現配置中心和服務注冊

因歷史項目&#xff08;.Netcore3.1&#xff09;需要&#xff0c;需要使用Nacos作為配置中心和服務發現&#xff0c;本文作為記錄使用Nacos的筆記。 文章目錄一、相關資料二、Nacos后臺增加配置三、代碼接入1、在appsettings.json中加入配置2、Program調整3、Startup調整4、啟動…

自學嵌入式第三十天:Linux系統編程-線程的控制

一、線程控制&#xff1a;互斥和同步對于線程的共享資源的競爭的處理&#xff1b;進程也能用&#xff0c;對進程競爭的系統資源的分配&#xff1b;二、互斥1.互斥&#xff1a;在多線程中對臨界資源的排他性&#xff08;獨占&#xff09;訪問&#xff1b;2.互斥機制&#xff08;…

EtherNet/IP 轉 Modbus 協議網關(三格電子)

一、產品概述 1.1 產品用途 SG-EIP-MOD-210 網關可以實現將 Modbus 接口設備連接到 EtherNet/IP 網 絡中。用戶不需要了解具體的 Modbus 和 EtherNet/IP 協議即可實現將 Modbus 設 備掛載到 EtherNet/IP 接口的 PLC 上&#xff0c;并和 Modbus 設備進行數據交互。拓撲結 構如…

MVCC的作用是什么

問題MVCC的作用是什么我的回答MVCC&#xff0c;全稱是Multi-Version Concurrency Control&#xff0c;多版本并發控制。這是數據庫管理系統中一種常用的并發控制機制&#xff0c;主要用于提高數據庫的并發性能。簡單來說&#xff0c;MVCC的核心思想是&#xff0c;當有人讀取數據…

A股大盤數據-20250828 分析

&#x1f4ca; 一、大盤數據深度分析&#x1f4b0; 量能分析&#xff08;核心指標&#xff09;總成交額&#xff1a;30013.32億元。這是一個天量級別&#xff0c;確認了增量資金大幅入場&#xff0c;行情基礎非常扎實&#xff0c;市場活躍度極高。市場分化&#xff1a;上漲2868…

安卓閃黑工具:aosp16版本Winscope之搜索功能剖析

背景&#xff1a; 在aosp16的Winscope體驗時候發現多了數據的搜索功能&#xff0c;也體驗了一下&#xff0c;這個新功能本身Winscope也自帶了很多指導提示&#xff0c;主要是用來解決Winscope有時候尋找某個數據&#xff0c;某個layer時候的不便&#xff0c;本文來詳細介紹一下…

使用 mcp-use 構建極簡 Web 自動化測試智能體「喂飯教程」

使用 mcp-use 構建極簡 Web 自動化測試智能體「喂飯教程」 引言 一、項目概述 二、技術架構 1. MCP協議簡介 2. 基于mcp-use庫的核心組件 2.1 MCPAgent使用 2.2 MCPClient配置 三、環境搭建 1. 依賴安裝 2. 環境配置 3. MCP服務器配置 4. 驗證MCP服務器連接 5.創建測試腳本 四、…

密碼管理中

第一部分&#xff1a;弱加密算法的危害使用弱加密算法&#xff08;如 MD5, SHA-1&#xff0c;甚至不加鹽的簡單哈希&#xff09;來保護密碼是極其危險的&#xff0c;主要危害體現在以下幾個方面&#xff1a;1. 極易被破解&#xff08;彩虹表攻擊&#xff09;原理&#xff1a;弱…

【mysql】解決Python連接MySQL報錯:缺少cryptography庫

解決Python連接MySQL報錯&#xff1a;缺少cryptography庫 在使用 Python 連接 MySQL 數據庫時&#xff0c;有時可能會遇到這樣的錯誤&#xff1a; RuntimeError: cryptography package is required for sha256_password or caching_sha2_password auth methods這篇文章將帶你快…