P14076 [GESP202509 六级] 货物运输

题解:洛谷 P2385 [USACO07FEB] Bronze Lilypad Pond B 题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。贝西正在练习芭蕾舞,她站在一朵莲花上,想跳到另一朵莲花上去,她只能从一朵莲花跳到另一朵莲花上,既不能跳到水里,也不能跳到岩石上。给定池塘的布局和贝西的跳跃长度,请计算贝西从起点出发,到达目的地的最小步数,我们保证输入数据中的目的地一定是可达的。一些格子是坚固得令人惊讶的莲花,还有一些格子是岩石,其余的只是美丽、纯净、湛蓝的水。为了让奶牛们娱乐和锻炼,农夫约翰建造了一个美丽的池塘。本文分享的必刷题目是从。 阅读详情

记录131

#include<bits/stdc++.h>
using namespace std;
#define ll long long//定义长整型别名ll,因为边权和最大可达1e14,必须用long long
const int N=1e5+10;//定义常量N,表示城市数量的最大范围
vector<pair<int,ll>>g[N];//定义邻接表g,g[u]存储与城市u相连的{相邻城市, 道路长度}
ll max_dist=0;//定义变量max_dist,用来记录首都到最远城市的距离
//定义深度优先搜索函数,u是当前城市,fa是父节点(防止走回头路),d是当前走过的距离
void dfs(int u,int fa,ll d){
	max_dist=max(max_dist,d);//每次到达一个节点,都尝试更新最远距离
	for(auto edge:g[u]){//遍历当前城市u的所有相邻道路
		int v=edge.first;//相邻的城市编号
		ll w=edge.second;//这条道路的长度
		if(v!=fa){//如果相邻城市不是父节点(即不是回头路)
			dfs(v,u,d+w);//继续向下深搜,距离累加当前道路长度
		}
	}
}
int main(){//主函数入口
	ios::sync_with_stdio(false);//关闭标准流同步,提升输入输出效率
	cin.tie(0);//解除cin与cout的绑定,进一步加快读取速度
	int n;//变量n,表示城市的总数
	ll sum=0;//定义变量sum,用来累加所有道路的长度总和
	cin>>n;//读入城市的数量n
	for(int i=1;i<n;i++){//循环读入n-1条道路的信息
		int u,v;//定义临时变量u和v,代表一条道路连接的两个城市
		ll len;//定义临时变量len,代表这条道路的长度
		cin>>u>>v>>len;//读入这条道路连接的两个城市编号以及长度
		g[u].push_back({v,len});//在邻接表中添加u到v的连接
		g[v].push_back({u,len});//在邻接表中添加v到u的连接(因为是无向图)
		sum+=len;//累加所有道路的长度
	}
	dfs(1,0,0);//从首都(1号城市)开始进行DFS,父节点设为0,初始距离为0
	cout<<2*sum-max_dist;//输出最短总路程:所有边走两倍的代价减去最远的一条回程
	return 0;//程序结束
}

题目传送门https://www.luogu.com.cn/problem/P14076


前言

我是一名专注信奥赛(CSP-J/S、NOIP)的教练。

  • 如果你觉得这篇题解对你有帮助,欢迎点击关注我的优快云账号,我会持续更新高质量算法解析。
  • 我深知算法思维的构建远比单纯通过题目更重要,本系列题解不局限于AC代码的堆砌,而是致力于拆解题目背后的逻辑链条与核心知识点
  • 备赛路上若遇瓶颈,欢迎随时评论或私信,我将甄选典型疑难问题,通过视频讲解或撰写专项文章的形式,为你提供深度答疑。

核心解题思路

这道题是一道经典的树上路径贪心问题。我们需要从首都出发,遍历所有节点,并且要求总路径最短。

  1. 模型转化:
    题目中的 n 座城市和 n-1 条双向道路,且任意两座城市均可到达,这在图论中被称为树(Tree)。首都 1 号节点就是这棵树的根节点。

  2. 核心贪心策略:
    在树上遍历所有节点,最朴素的做法是“深度优先搜索(DFS)”:从根节点出发,走到每一个叶子节点,然后原路返回。在这个过程中,每一条边都会被经过两次(去一次,回一次)。因此,所有边的长度总和乘以 2,就是遍历所有节点并回到起点的总代价。
    但是,题目有一个关键条件:“车队最后可以不返回首都”。这意味着,我们可以省去从“最远的那个城市”返回首都的那段路程。为了让总路程最小,我们省去的这段路程必须尽可能长。

  3. 数学公式:
    最终的答案 = 所有边的长度总和 × 2 - 从首都出发能到达的最远距离。


代码分块详细解释

1. 头文件、常量与全局变量定义

#include<bits/stdc++.h>
using namespace std;
#define ll long long // 定义长整型别名 ll,因为边权和最大可达 1e14,必须用 long long
const int N=1e5+10; // 定义常量 N,表示城市数量的最大范围
vector<pair<int,ll>> g[N]; // 定义邻接表 g,g[u] 存储与城市 u 相连的 {相邻城市, 道路长度}
ll max_dist=0; // 定义变量 max_dist,用来记录首都到最远城市的距离
  • 详细分析:这部分搭建了图论问题的基础数据结构。由于题目中边的长度 l_i 最大可达 109,且最多有 10^5 条边,总路程可能达到 10^14 级别,远远超出 int 的范围,因此必须使用 long long。vector<pair<int,ll>> g[N] 是存储无向图(树)的标准邻接表写法,pair 的第一个元素存相邻节点,第二个元素存边权。

2. 深度优先搜索(DFS)求最远距离

// 定义深度优先搜索函数,u 是当前城市,fa 是父节点(防止走回头路),d 是当前走过的距离
void dfs(int u, int fa, ll d){
    max_dist = max(max_dist, d); // 每次到达一个节点,都尝试更新最远距离
    for(auto edge : g[u]){ // 遍历当前城市 u 的所有相邻道路
        int v = edge.first; // 相邻的城市编号
        ll w = edge.second; // 这条道路的长度
        if(v != fa){ // 如果相邻城市不是父节点(即不是回头路)
            dfs(v, u, d + w); // 继续向下深搜,距离累加当前道路长度
        }
    }
}
  • 详细分析:这个 DFS 函数的作用是求树的“加权直径”(从根节点出发的最长路径)。
    • 防止死循环:在树中遍历必须传递父节点 fa,通过 if(v != fa) 确保搜索只向子节点延伸,不会在两个节点之间来回横跳。
    • 距离累加:d + w 实时维护从首都(根节点)到当前节点 v 的总路径长度。
    • 全局更新:每当 DFS 走到一个节点,就将其距离与全局变量 max_dist 进行比较,最终 max_dist 就会保存从首都出发能到达的最远城市的距离。

3. 主函数:建图与边权累加

int main(){ // 主函数入口
    ios::sync_with_stdio(false); // 关闭标准流同步,提升输入输出效率
    cin.tie(0); // 解除 cin 与 cout 的绑定,进一步加快读取速度
    int n; // 变量 n,表示城市的总数
    ll sum = 0; // 定义变量 sum,用来累加所有道路的长度总和
    cin >> n; // 读入城市的数量 n
    for(int i = 1; i < n; i++){ // 循环读入 n-1 条道路的信息
        int u, v; // 定义临时变量 u 和 v,代表一条道路连接的两个城市
        ll len; // 定义临时变量 len,代表这条道路的长度
        cin >> u >> v >> len; // 读入这条道路连接的两个城市编号以及长度
        g[u].push_back({v, len}); // 在邻接表中添加 u 到 v 的连接
        g[v].push_back({u, len}); // 在邻接表中添加 v 到 u 的连接(因为是无向图)
        sum += len; // 累加所有道路的长度
    }
  • 详细分析:主函数的前半部分负责数据的读取和图的构建。sum += len 这一步非常关键,它直接计算出了整棵树所有边的权值之和。由于是无向图,添加边时需要双向添加(u->v 和 v->u 都要加),保证 DFS 时能正确遍历到所有相邻节点。

4. 核心计算与输出

    dfs(1, 0, 0); // 从首都(1号城市)开始进行 DFS,父节点设为 0,初始距离为 0
    cout << 2 * sum - max_dist; // 输出最短总路程:所有边走两倍的代价减去最远的一条回程
    return 0; // 程序结束
}
  • 详细分析:这是整个算法的收尾。调用 dfs(1, 0, 0) 从根节点开始遍历,求出最远回程距离 max_dist。最后,利用贪心公式 2 * sum - max_dist 直接得出答案。例如在样例 1 中,总边权和为 6+1+5=12,两倍是 24;从首都 1 出发最远能走到 4 号城市(距离为 1+5=6),所以最终答案是 24 - 6 = 18。

 核心逻辑总结表

代码模块核心变量/操作精炼作用解决的痛点
数据类型#define ll long long使用 64 位长整型防止 105 条边、每条边 109 权值累加时发生数据溢出
图存储vector<pair<int,ll>> g[N]邻接表存无向图完美适配 n ≤ 105 的稀疏图,比邻接矩阵更节省空间
DFS 防回头if(v != fa)记录父节点并剪枝避免在树的双向边中陷入无限递归死循环
贪心公式2 * sum - max_dist核心数学推导将复杂的“遍历所有节点的最短路径”问题,转化为简单的“总边权*2 - 最长单程”
IO 优化ios::sync_with_stdio(false)提升输入输出效率解决 105 级别数据量下 cin/cout 可能导致的超时问题
AVM环视:系统搭建整体流程 文章目录前言一、畸变矫正鱼眼相机二、透视变换三、图像拼接四、图像融合总结 前言 由于正在做AVM环视,所以记录一下整个过程,归纳为一个系列文章,并对期间遇到的错误进行归纳整理。本文主要概括了AVM环视的大致流程和逻辑,不涉及代码部分,仅供思路参考,其中涉及的具体技术会在后期整理为小章节进行分析。 一、畸变矫正 鱼眼相机 做环视基本上使用到的是鱼眼照片,因为鱼眼相机的视角范围可以达到220°到230°,所以一个相机就可以采集到一个面的全部信息,例如汽车具有四个面,那么在汽车的前后左右分别安装一个鱼眼相机. 阅读详情

相关推荐

土地利用数据从1972到2023:如何利用Landsat和Sentinel数据构建长期变化监测模型

本文详细解析了如何利用1972至2023年的Landsat和Sentinel遥感数据构建土地利用长期变化监测模型。通过多源数据融合策略、时间序列预处理流程和深度学习算法,实现高精度的土地利用分类与变化检测,为生态评估和城市规划提供科学依据。文章还探讨了验证方法和实际应用案例,展示了长期遥感数据在环境建模中的独特价值。

weixin_28720573的博客 446

题解:P14076 [GESP202509 六级] 货物运输

任意两座城市间均可通过双向道路到达。场上没过,以为是蓝,瞎写了。车队最后可以不返回首都。

Genshin_ht的博客 2011

SCU【C】程序设计基础期末安全项目lab2-Deadbeef-writeup(附题目&源码)

项目名称(本质:栈溢出攻击)【源码在文首】和lab1一样,此题又是美国卡耐基梅隆大学的平时作业哈哈哈! 项目要求是把栈溢出,强行更改函数返回值,输出0xdeadbeef。

2301_79586491的博客 1545

《P14076 [GESP202509 六级] 货物运输》

题目摘要: A国有n个城市构成树形结构(1号是首都),需要设计一条从首都出发遍历所有城市的路线,允许重复经过城市,要求最小化路径总长度。输入为城市数n和n-1条双向道路(含长度),输出最短路径长度。 关键点: 问题转化为在树结构中找到最短遍历路径 最优解为2倍所有边权和减去最长从首都出发的路径长度 需要计算树的总边权和以及从首都出发的最长路径 时间效率需处理1e5规模数据 样例说明: 输入#1总边权13,最长路径5(1→3→4),输出213-5=18 输入#2总边权9,最长路径9(1→3→7→6→5),输出

Jasmine_llq的博客 153

Flutter模块打包AAR集成Android原生项目实践

跨平台开发框架Flutter通过将UI组件渲染为原生代码实现高性能表现,其核心优势在于一套代码可同时运行在iOS和Android平台。在工程实践中,将Flutter模块打包为AAR(Android Archive)进行集成,成为混合开发的主流方案。这种方案既保留了原生项目的稳定性,又能渐进式引入Flutter的高效开发特性。通过配置MethodChannel实现原生与Dart代码通信,开发者可以灵活控制Flutter引擎生命周期,优化内存占用和渲染性能。对于电商、社交等需要快速迭代的业务场景,该方案能显著提

weixin_34025051的博客 399

单细胞实战之亚细胞分群从T/NK至CD4+T细胞——从入门到进阶(中级篇1)

亚细胞分群从T/NK至CD4+T细胞

zfyyzhys的博客 6392

CCF-GESP计算机学会等级考试2025年9月六级C++T2 货物运输

摘要 题目描述A国n座城市通过n-1条双向道路连接成树形结构,1号城市为首都。需要设计从首都出发经过所有城市的路线,最小化经过道路总长度。关键思路是:最优解为所有道路长度之和的两倍减去根节点到最远叶节点的路径长度。使用深度优先搜索计算最长路径,最终答案为2*总长度-最长路径长度。算法时间复杂度为O(n),适用于n≤10^5的大规模数据。

长春高老师编程 1555

trae CN 配置ida的mcp教程

本文介绍了在TraeCN中配置IDA Pro MCP服务的完整步骤:1)准备IDA Pro 9.0+和Python 3.11+环境;2)安装MCP服务端并配置插件;3)生成MCP配置文件;4)在TraeCN中添加HTTP类型MCP服务(默认端口13337);5)测试连接。重点说明了HTTP配置方式的操作流程,包括手动启动服务、正确填写JSON配置等关键环节。

2401_87915504的博客 1956

[GESP202509 六级] 货物运输

题目要求在树上遍历所有节点并最小化路径总长。关键思路是:每条边至少走一次,最后可以不返回首都。最优解为所有边权之和的两倍减去从首都出发的最长路径长度。具体实现使用深度优先搜索计算最长路径,最终答案为 2×总边权和-最长路径。

zaiyang遇见 999

在 RAP 中把业务对象“搬到网口上”:service definition 与 service binding 的全流程、范式与实战

本文解析了SAP ABAP开发中service definition和service binding的关键作用。service definition负责选择要暴露的CDS实体和行为,形成服务模型;而service binding则将服务绑定到具体协议(如OData),生成可访问的端点。两者分离带来三大优势:支持同一模型多重发布、降低环境迁移耦合度、强化安全治理。文章通过预订业务对象的端到端示例,展示了如何从CDS建模到生成Fiori Elements预览。最后以售后工单业务为例,说明这种架构如何支持内外服务

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 391

【ROS机器人系统】自主导航+YOLO目标检测+语音播报

完成自主导航功能,并在小车移动至指定地点的过程中,通过机器人的摄像头检测导航途中所见物体,识别出物体的种类(框选出不同物体并标注识别结果),结合科大讯飞语音合成模块对识别结果进行语音播报。..............................

南京大学软件工程硕士在读 2万+

GESP认证C++编程真题解析 | 202509 六级

本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!1.:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。2.:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。

团爸讲算法 679

Android 12 系统横屏时,开机动画有两秒显示不全

平板系统默认横屏时,开机会旋转90度,显示的分辨率WxH,会变成HxW.但又会很快被SurfaceFlinger的SurfaceFlinger::processDisplayChanged 娇正。所以为了保险,可以在开机动画没结束之前,禁止旋转事件。在Android 12 产品定制化开发中,由于系统默认方向为竖屏,平板电脑要横屏显示。系统在开机时,有时因为旋转,会出现动画只显示一部分。

448313096@qq.com 1183

记——那次难忘的GESP六级考试(202603)+编程题题解

本文记录了作者参加GESP六级考试的全过程,重点描述了备考和考试当天的经历。作者详细列出了自己完成的13道编程题目及解题思路,包括DP、贪心、树状数组等算法题,同时也提到未完成的8道题目。考试当天经历了忘带鼠标的意外,利用触控板继续练习。文章还提到选择题涉及动态规划、树遍历等基础知识,整体展现了作者从紧张备考到从容应考的心路历程,以及面对突发状况的应对能力。

2401_84010520的博客 641

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 305

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

把 KV Cache 压到 FP4:BitDecoding-FP4 的算法-系统协同设计复盘

长上下文推理卡在KV Cache的显存与带宽上,而现有FP4方案要么精度崩、要么速度废。这篇文章复盘BitDecoding-FP4如何用三个算法补丁加一个系统重构,在B300上把服务吞吐提升2.4–3.0倍,精度几乎不掉。

helloagent的博客 310

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【算法拾光】链表 哈希表|K个一组翻转链表 + 两数之和

K个一组翻转链表需分段反转,借助哑节点与前驱指针维护连接,避免断链;两数之和利用哈希表实现O(1)查找,空间换时间,高效定位目标组合。前者考察链表指针操作,后者聚焦映射关系构建,均为面试高频题。

wuqingyigexiaoba的博客 330

排序算法深度笔记(下):非比较类排序的线性突破与工程边界

排序算法时间复杂度额外空间复杂度稳定性是否基于比较选择排序O(N^2)(O(1))不稳定是冒泡排序O(N^2)(O(1))稳定是插入排序O(N^2)(O(1))稳定是归并排序O(N\log N)(O(N))稳定是快速排序O(N\log N)O(log N)不稳定是堆排序O(N\log N)O(1)不稳定是计数排序(O(N + M))O(M))稳定否基数排序O(N)稳定否桶排序平均O(N) / 最坏O(N^2)

2401_87069538的博客 601

优选算法:分治-归并排序

交易逆序对的总数

Wangshijie1015的博客 146

算法日常・每日刷题--<动态规划>42

本题为“不相交的线”,与最长公共子序列问题相似。使用动态规划求解:定义 dp[i][j] 表示 nums1[0:i] 与 nums2[0:j] 的最大不相交连线数。若元素相等,则继承左上值加1;否则取上方或左方最大值。最终返回 dp[m][n],即两数组的最大不相交连线数。时间复杂度 O(mn),空间复杂度 O(mn)。

2503_92261635的博客 24

408 算法 06|堆与 Top-K:最小的 10 个数,到底该用数组还是堆

2022(42) 找 100 万个数里最小的 10 个,官方给了"10 元素有序数组"和"大根堆"两种答案。我把两种都实现并数了比较次数:k=10 时两者几乎打平,k=10000 时堆少 111 倍。另附 2021(42) 计数排序的比较次数与稳定性实测。

m0_56226131的博客 435

408 算法 04|主元素与三元组最小距离:两种“扫描时做决定“的思路

2013(41) 的主元素用摩尔投票一遍选出候选,但真正的考点是"选完必须验票";2020(41) 的三元组最小距离,三指针每次只挪最小的那个,靠的是 D=2×(max−min) 这个恒等式。两套完整 C 代码加真实输出,附官方评分档位表。

m0_56226131的博客 417

牛客周赛165C题(前后缀性质,递推,排序,枚举)

题目大意:给定长度为 `n` 的数组,选择 `k ∈ [1,n]`,将前 `k` 个元素整体翻转,后面的元素不变。要求操作后的整个数组非递减,统计满足条件的 `k` 的数量。题目链接:https://ac.nowcoder.com/acm/contest/141721/C。时间复杂度:O(nlogn)

2501_94316951的博客 173

【MPC 算法】Python 实战:模型预测控制(MPC)算法原理与代码实现

本文介绍模型预测控制(MPC)原理与Python实现。MPC通过滚动优化预测未来状态,结合系统模型、目标函数与约束条件,动态生成最优控制序列。以一阶温度系统为例,使用CVXPY构建凸优化问题,实现加热功率的智能调控。代码包含模型预测、目标函数设计(含温度跟踪与控制平滑惩罚)、输入约束及滚动更新机制。仿真结果表明,MPC能快速稳定温度至目标值60℃,且控制动作平滑合理,体现其在复杂系统中的优越性。

赖德发的博客 41

算法61,判定是否为字符重排

两字符串能互为重排 ⇔。

sheshibenniaodan的博客 221

算法日常・每日刷题--<动态规划>32

给定严格递增的正整数数组,求最长斐波那契子序列长度。使用二维DP,dp[i][j]表示以arr[i]、arr[j]为最后两项的序列长度,初始化均为2。通过哈希表快速查找前一项target = arr[j] - arr[i],若存在且下标小于i,则状态转移:dp[i][j] = dp[k][i] + 1。遍历更新全局最大长度,最终若结果小于3则返回0。时间复杂度O(n²),空间复杂度O(n²)。

2503_92261635的博客 180
上一篇: P14075 [GESP202509 六级] 划分字符串
下一篇: P14920 [GESP202512 六级] 道具商店
谢天谢地AC了 | 信奥教练
博客等级 码龄1年 53粉丝 177原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值