题目描述: 给定一个颗树,每一条边有俩个权值w1和w2。选择k条边权为w1的边,其余都是w2。让直径最小。 题解: 树形dp,f[u][k]表示以u为根结点的子树的最小直径,因为直接求不好求,可以二分判可行性,求出答案。考虑转移,类似背包。 if(f[u][k] + f[j][z] + A <= m ...
分类:
其他好文 时间:
2020-12-08 12:37:07
阅读次数:
5
GNE预处理技术——把div标签中的正文转移到p标签中摄影:产品经理买单:kingname大部分的新闻网站,其新闻正文是在p标签中的。所以GNE在统计文本标签密度时,会考虑p标签的数量和p标签中文本的数量。但是也有一些网站,他们的新闻正文是在div标签中的,这种情况下,这些div标签就会干扰文本标签密度的计算。div标签在HTML页面布局时有很大的作用,不能随意改动。但是,如果一个div标签它下面
分类:
其他好文 时间:
2020-12-07 12:45:59
阅读次数:
11
二分 + \(dp\) 的好题。 首先,要求最大直径最小,我们肯定会想到二分最大直径。 难点就在于怎么 \(check\)。 记录数组 \(dp_u\) 表示在 \(u\) 号点,其子树到达 \(u\) 号点的最大链长。转移时,考虑其和子树之间的关系。 可以发现,\(u\) 号点就类似于一个 \(l ...
分类:
其他好文 时间:
2020-12-07 12:41:01
阅读次数:
8
dpdp+树状数组O(n lg n)O(n lg n) 注意到我们在状态转移的时候要枚举f[j]f[j]的最大值来转移,我们可以考虑使用数据结构来维护从而优化一下,只要是支持单点修改和区间最值查询的数据结构都可以这么做,分块(O(nn??√))(O(nn))和树状数组(O(n lg n))(O(n ...
分类:
其他好文 时间:
2020-12-07 12:29:58
阅读次数:
6
01背包问题。 与模板不同,这道题要求的是最小剩余空间,也就是求背包里最多能放多少东西。 所以状态转移方程变为 fi= fi - w[i] + wi 。 其中 fi 表示当背包容量为 i 时可放的最大重量。 注意要倒着循环。 #include<bits/stdc++.h> using namespa ...
分类:
其他好文 时间:
2020-12-03 11:59:56
阅读次数:
3
一,指令的执行过程是怎样的? 1,指令是有长度的,一条指令可以由多个字节构成 2,指令的执行过程分为三个阶段 cpu从cs:ip所指向的内存单元读取指令,存放到指令缓存器中 ip = ip + 所读指令的长度,从而指向下一条指令 执行指令缓存其中的内容,重复第一步 二,汇编指令jmp(jump的简写 ...
分类:
编程语言 时间:
2020-11-26 14:31:01
阅读次数:
4
分析一波,发现是棵树。 我们先假设是一颗外向树, 考虑$u$是以它为根的子树最先抽出来的, 设子树$W$和为$S_u$,全局$W$和为$S$。 有$p=\frac\sum_{i\ge0}(\frac)^i=\frac$ 那么我们设$f[u][S_u]$,转移就是背包一样转移。 现在我们有一些向根的边 ...
分类:
其他好文 时间:
2020-11-25 12:13:09
阅读次数:
3
CF1446 题目都很有趣。 A 假设存在一个合法的,那么直接选。 否则所有数都小于 \(\frac{W}{2}\),那么按任意顺序贪心选都是对的。 B 类比 LCS,设 \(f_{i,j}\) 表示 \([?,i],[?,j]\) 的最大答案。转移是 naive 的。 C 观察:二进制最高位相同的 ...
分类:
其他好文 时间:
2020-11-21 12:29:15
阅读次数:
8
简单动态规划:dp[i]是以位置i结束的最大和,动态转移方程dp[i] = max(dp[i-1]+array[i], array[i]),dp中的最大值即是结果。 class Solution { public: int FindGreatestSumOfSubArray(vector<int> ...
分类:
编程语言 时间:
2020-11-21 11:46:10
阅读次数:
5
CF771C Bear and Tree Jumps 题解 Problem ? 有一颗$n$个结点的树,一只熊可以从当前节点可以跳到任何与当前节点距离不超过$k$的节点。定义$f(u,v)$为熊从$u$点到$v$点所需的最少跳跃次数,那么,对于树上的所有点对$(u,v)$,$f(u,v)$的总和是多 ...
分类:
其他好文 时间:
2020-11-19 12:56:09
阅读次数:
18