2026/4/14 2:39:57
网站建设
项目流程
有做网站设计的吗,做外贸应该去什么网站,清远专业网站制作公司,最版网站建设案例本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来#xff0c;并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构#xff0c;旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。
欢迎大…本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。欢迎大家订阅我的专栏算法题解C与Python实现附上汇总贴算法竞赛备考冲刺必刷题C | 汇总【题目来源】洛谷P1364 医院设置 - 洛谷【题目描述】设有一棵二叉树如图其中圈中的数字表示结点中居民的人口。圈边上数字表示结点编号现在要求在某个结点上建立一个医院使所有居民所走的路程之和为最小同时约定相邻接点之间的距离为1 11。如上图中若医院建在1 11处则距离和 4 12 2 × 20 2 × 40 136 4122\times202\times401364122×202×40136若医院建在3 33处则距离和 4 × 2 13 20 40 81 4\times2132040814×213204081。【输入】第一行一个整数n nn表示树的结点数。接下来的n nn行每行描述了一个结点的状况包含三个整数w , u , v w, u, vw,u,v其中w ww为居民人口数u uu为左链接为0 00表示无链接v vv为右链接为0 00表示无链接。【输出】一个整数表示最小距离和。【输入样例】5 13 2 3 4 0 0 12 4 5 20 0 0 40 0 0【输出样例】81【算法标签】《洛谷 P1364 医院设置》 #动态规划DP# #树形数据结构# #广度优先搜索BFS# #最短路# #树的重心#【代码详解】#includebits/stdc.husingnamespacestd;constintN105,MN*2;// 定义常量N: 最大节点数M: 最大边数intn,w[N],u,v,ans1e9,sum,dep[N];// n: 节点数, w: 节点权重, ans: 最小总代价inth[N],e[M],ne[M],idx;// 邻接表存储树voidadd(inta,intb){e[idx]b,ne[idx]h[a],h[a]idx;// 添加无向边}// DFS计算深度voiddfs(intu,intfa)// u: 当前节点, fa: 父节点{if(fa)// 如果有父节点dep[u]dep[fa]1;// 当前节点深度 父节点深度 1for(intih[u];i!-1;ine[i])// 遍历当前节点的所有邻接点{intje[i];// 邻接节点jif(jfa)continue;// 如果是父节点跳过dfs(j,u);// 递归遍历子节点}}intmain(){memset(h,-1,sizeof(h));// 初始化邻接表cinn;// 输入节点数// 输入每个节点的权重和子节点for(inti1;in;i){cinw[i]uv;// 权重, 左子节点, 右子节点if(u)// 如果有左子节点add(i,u),add(u,i);// 添加双向边if(v)// 如果有右子节点add(i,v),add(v,i);// 添加双向边}// 尝试每个节点作为根for(inti1;in;i){sum0;// 重置总代价memset(dep,0,sizeof(dep));// 重置深度数组dfs(i,0);// 以i为根进行DFS计算各节点深度// 计算以i为根的总代价for(intj1;jn;j)sumw[j]*dep[j];// 代价 权重 × 深度ansmin(ans,sum);// 更新最小代价}coutansendl;// 输出结果return0;}【运行结果】5 13 2 3 4 0 0 12 4 5 20 0 0 40 0 0 81