题目大意: 给定n个点的有根树,每条边有边权,每个点有点权w, 你要在k个点上建立伐木场,对于每个没有建伐木场的点x,令与它最近的祖先、有伐木场的点,为y,你需要支付dis(x,y)*w[x]的代价。 选择合适的位置建伐木场,最小化总代价。 n<=100 分析: f[i][j][k]表示, 以i为根
转载
2018-05-18 15:27:00
32阅读
2评论
XL.[IOI2005]Riv 河流 新转移方式get~~~ 我必须吐槽一下现在赞最多的那篇题解,虽然思路巧妙,但是明显没有“物尽其用”,对于各DP数组的真实含义也没有把握清楚。 一个naive的想法就是:设$f[i][j]$表示:在$i$的子树中,修了$j$个场子,的最小费用。 但是这样不是很好转
转载
2021-03-30 15:53:00
353阅读
2评论
题目题目描述几乎整个 Byteland 王国都被森林和河流所覆盖。小点的河汇聚到一起,形成了稍大点的河。就这样,所有的河水都汇聚并流进了一条大河,最后这条大河流进了大海。这条大河的入海口处有一个村庄——名叫 Bytetown。在 Byteland 国,有 nn 个伐木的村庄,这些村庄都座落在河边。目前在 Bytetown,有一个巨大的伐木场,它处理着全国砍下的所有木料。木料被砍下后,顺着河流...
原创
2021-07-13 14:47:57
59阅读
趁魏佬去英语演讲了,赶快%%%%%%%%%%%%%%魏佬 基本上是照着魏佬的代码写的 这其实还是一个树上背包 我们用$dp[i][j][k]$表示在以$i$为根的子树里,我们修建$k$个伐木场,且$i$这个节点的树木我们运到$j$,也就是说在$j$上修建了一个伐木场,但是这个$j$并不包含在$k$中
转载
2019-01-01 21:35:00
73阅读
2评论
题目大意:有一个单调不降整数序列,定义平均值数列为这个数列的相邻两项的平均值组成的序列,现在给定这个平均值序列,问原序
原创
2023-04-19 00:48:00
55阅读
riv 几乎整个Byteland王国都被森林和河流所覆盖。小点的河汇聚到一起,形成了稍大点的河。就这样,所有的河水都汇聚并流进了一条大河,最后这条大河流进了大海。这条大河的入海口处有一个村庄——名叫Bytetown 在Byteland国,有n个伐木的村庄,这些村庄都座落在河边。目前在Bytetown
转载
2017-10-20 16:50:00
49阅读
2评论
题目:https://www.luogu.org/problemnew/show/P3354 虽说是几个月前曾经讲过的题,但没有题解而自己(花了两个多小时)A了好高兴!!! 这是一个很好的套路:“承诺”以算值。 伐木场放在哪里对于节点的值是有影响的,所以自然的思路就是把和该节点有关的伐木场位置也压进
转载
2018-06-05 10:49:00
59阅读
[Ioi2005]mea Description 考虑一个非递减的整数序列 S1,....Sn+1(Si<=Si+1 1<=i<=n)。 序列M1...Mn是定义在序列S的基础上,关系式为 Mi=( Si + S(i+1) )/2, 1<=i<=n, 序列M叫做序列S的平均数序列。例如序列1,2,2
转载
2018-04-15 14:34:00
85阅读
2评论
题意 "题目链接" Sol 首先一个很显然的思路是直接用$f[i][j] / g[i][j]$表示$i$的子树中选了$j$个节点,该节点是否选的最小权值。但是直接这样然后按照树形背包的套路转移的话会有一种情况无法处理,就是说该节点不选,儿子节点也不选,这样我们就不清楚儿子节点的子节点的贡献了 一种暴
原创
2021-06-04 22:59:58
111阅读
题目:https://www.luogu.org/problemnew/show/P3354 状态中要记录一个“承诺”,只需相同承诺之间相互转移即可; 然后就是树形DP的套路了。 代码如下:
转载
2018-06-05 15:46:00
31阅读
2评论
int DoOperation(int argc, char **argv)函数处理了命令- 分为如下四个处理: InsertChkParam(argc, argv) UpdateChkParam(argc, argv) DeleteChkParam(argc, argv) DisplayChkParam(argc, argv)之后。获取环境变量: GetINIFile()函数定义
转载
2009-05-12 16:37:00
193阅读
2评论
【题目链接】 http://poj.org/problem?id=1167 【算法】 深度优先搜索 + 迭代加深 【代码】
转载
2018-07-08 10:54:00
153阅读
2评论
【题目链接】 https://www.lydsy.com/JudgeOnline/problem.php?id=2599 【算法】 点分治 【代码】
转载
2018-07-16 15:06:00
97阅读
2评论
[题目链接] https://www.luogu.org/problemnew/show/P4899 [算法] 建出原图的最小/最大生成树的kruskal重构树然后二维数点 时间复杂度 : O((N+Q)logN) [代码]
转载
2019-02-13 23:02:00
93阅读
2评论
[题目链接] http://poj.org/problem?id=1179 [算法] 区间DP [代码]
转载
2018-07-18 17:15:00
181阅读
2评论
Description 给一棵树,每条边有非负权.求一条简单路径,权值和等于K,且边的数量最小.N <= 200000, 1 <= K <= 1000000 Input 第一行 两个整数 n, k 第二..n行 每行三个整数 表示一条无向边的两端和权值 (注意点的编号从0开始) Output 一个整
转载
2017-09-26 16:39:00
28阅读
2评论
网络流 基础知识 定义 一张 网络:由一个图和一个函数 \(C: E\to \R\) 组成。\(C(e)\) 表示一条边 \(e\) 的 容量。 其中有两个关键的点,称为 源点(S) 和 汇点(T)。 下面用 \(C(x,y)\) 表示 \(x,y\) 这条边的 \(C\) 函数值。对于其它定义域为 ...
转载
2021-09-29 14:19:00
177阅读
2评论
题目意思不说了。 考虑求半径显然先求直径,使用 \(2n-2\) 次询问直接找出答案。 然后考虑我们对于每一个点,其实他与直径上的距离你是可以计算出来的。 怎么算,通过列方程组的方法。 假设直径两端点为 \(x, y\) ,点 \(i\) 到直径的距离为为 \(d\) ,然后设往这个点到直径上的点对 ...
转载
2021-11-03 12:23:00
70阅读
2评论
"嘟嘟嘟" 一句话题意:求带权基环树森林中每一个联通块的最长路之和,路径为简单路径。 其实这道题不难,只不过是吧好多知识拼接在了一起。 看到基环树,就会想到断环为链,为了能枚举到所有路径,要把链翻倍乘2。 现在得到了一个序列,上面的每一个点表示外向树的树根。 那么一条最长路可能有两种情况: 1.单独
原创
2021-05-29 19:25:25
656阅读
题目描述 高速公路旁边有一些村庄。高速公路表示为整数轴,每个村庄的位置用单个整数坐标标识。没有两个在同样地方的村庄。两个位置之间的距离是其整数坐标差的绝对值。 邮局将建在一些,但不一定是所有的村庄中。为了建立邮局,应选择他们建造的位置,使每个村庄与其最近的邮局之间的距离总和最小。 你要编写一个程序,
转载
2020-01-30 20:08:00
199阅读