分治优化dp
C 分治优化 DP 模板#include vector#include algorithmusing namespace std;const long long INF 1e18;// 1. 定义代价计算函数// 示例计算区间 [l, r) 的代价long long cost(int l, int r, vectorlong long presum) {long long s presum[r] - presum[l];return s * (s 1) / 2;}// 2. 分治优化核心函数void solve(int l, int r, int optL, int optR, vectorvectorlong long dp, vectorlong long presum, int k) {if (l r) return;int mid (l r) / 2;long long best INF;int bestOpt optL;// 在 [optL, min(optR, mid-1)] 范围内寻找最优分割点for (int i optL; i min(optR, mid - 1); i) {long long current dp[k-1][i] cost(i, mid, presum);if (current best) {best current;bestOpt i;}}dp[k][mid] best;// 递归处理左右区间solve(l, mid - 1, optL, bestOpt, dp, presum, k);solve(mid 1, r, bestOpt, optR, dp, presum, k);}// 3. 主 DP 函数vectorvectorlong long divideAndConquerDP(int K, int n, vectorlong long presum) {vectorvectorlong long dp(K1, vectorlong long(n1, INF));// 初始化划分1段时的代价for (int i 1; i n; i) {dp[1][i] cost(0, i, presum);}// 分治优化求解for (int k 2; k K; k) {solve(1, n, 1, n, dp, presum, k);}return dp;}// 4. 问题入口函数long long solveProblem(vectorint nums, int k) {int n nums.size();vectorlong long presum(n 1, 0);for (int i 0; i n; i) {presum[i1] presum[i] nums[i];}auto dp divideAndConquerDP(k, n, presum);return dp[k][n];}模板核心1. 可复用性只需要替换 cost() 函数就能适配不同的划分代价问题2. 时间复杂度O(k·n log n)比朴素 DP 的 O(k·n²) 效率高很多3. 适用场景当 DP 转移满足决策单调性时即最优分割点随区间右移单调不减就可以用这个模板

相关新闻

基于SpringBoot+Vue的宠物服务平台

基于SpringBoot+Vue的宠物服务平台

🍅 作者主页:Selina .a 🍅 简介:Java领域优质创作者🏆、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作。 主要内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据…

2026/7/5 8:06:13 阅读更多 →
.NET Core Web 中的健康检查端点

.NET Core Web 中的健康检查端点

.NET Core Web 中的健康检查端点 文章目录 .NET Core Web 中的健康检查端点概述核心概念1. 健康状况状态2. 主要组件 基本配置1. 添加健康检查服务2. 配置端点路由 创建自定义健康检查实现 IHealthCheck 接口 常用内置健康检查1. 数据库健康检查2. URL 健康检查3. 内存检查 高级…

2026/7/5 7:40:30 阅读更多 →
AI核心知识80——大语言模型之Slow Thinking和Deep Reasoning(简洁且通俗易懂版)

AI核心知识80——大语言模型之Slow Thinking和Deep Reasoning(简洁且通俗易懂版)

慢思考 (Slow Thinking) 和 深度推理 (Deep Reasoning) 是 2024 年以 OpenAI o1 和 DeepSeek-R1 为代表的新一代大模型所引入的核心概念。 这一概念标志着 AI 从“靠直觉反应” 的时代,进入了“靠逻辑推导” 的时代。 简单来说:以前的模型是“脱口而出…

2026/7/6 1:44:37 阅读更多 →

最新新闻

Instatic插件权限审计:安全合规检查完全指南

Instatic插件权限审计:安全合规检查完全指南

Instatic插件权限审计:安全合规检查完全指南 【免费下载链接】Instatic Instatic is a modern self-hosted visual CMS - get it running in 1 minute 项目地址: https://gitcode.com/GitHub_Trending/in/Instatic Instatic作为现代化的自托管可视化CMS&…

2026/7/6 19:35:01 阅读更多 →
nest_asyncio 性能优化指南:如何避免嵌套事件循环的性能陷阱

nest_asyncio 性能优化指南:如何避免嵌套事件循环的性能陷阱

nest_asyncio 性能优化指南:如何避免嵌套事件循环的性能陷阱 【免费下载链接】nest_asyncio Patch asyncio to allow nested event loops 项目地址: https://gitcode.com/gh_mirrors/ne/nest_asyncio 在Python异步编程的世界中,nest_asyncio是一个…

2026/7/6 19:29:00 阅读更多 →
Hermes Agent完整实战指南:AI代理系统的深度配置与应用

Hermes Agent完整实战指南:AI代理系统的深度配置与应用

Hermes Agent完整实战指南:AI代理系统的深度配置与应用 【免费下载链接】hermes-agent The agent that grows with you 项目地址: https://gitcode.com/GitHub_Trending/he/hermes-agent Hermes Agent是一款功能强大的AI代理系统,它能够随着用户需…

2026/7/6 19:26:59 阅读更多 →
ReForum:构建现代化React-Redux论坛应用的终极指南

ReForum:构建现代化React-Redux论坛应用的终极指南

ReForum:构建现代化React-Redux论坛应用的终极指南 【免费下载链接】ReForum A minimal forum board application. Built on top of React-Redux frontend, ExpressJS-NodeJS backend (with PassportJS for OAuth) and MongoDB databse. 项目地址: https://gitcod…

2026/7/6 19:26:59 阅读更多 →
ReForum深度解析:React-Redux与ExpressJS的完美融合架构

ReForum深度解析:React-Redux与ExpressJS的完美融合架构

ReForum深度解析:React-Redux与ExpressJS的完美融合架构 【免费下载链接】ReForum A minimal forum board application. Built on top of React-Redux frontend, ExpressJS-NodeJS backend (with PassportJS for OAuth) and MongoDB databse. 项目地址: https://g…

2026/7/6 19:20:56 阅读更多 →
Discordia迭代器系统:Cache、WeakCache与FilteredIterable深度解析

Discordia迭代器系统:Cache、WeakCache与FilteredIterable深度解析

Discordia迭代器系统:Cache、WeakCache与FilteredIterable深度解析 【免费下载链接】Discordia Discord API library written in Lua for the Luvit runtime environment 项目地址: https://gitcode.com/gh_mirrors/di/Discordia Discordia是基于Luvit运行环…

2026/7/6 19:20:56 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻