Solution 我们发现要解决一个树上的连通块问题,解决这种问题的时候我们不妨先随便选一个根,如果要选某两个点则他们到n的路径上的点都会被选就变成了一个树形背包问题。 注意这里是多重背包,所以我们可以用单调队列优化,时间复杂度$O(N^2M)$。 考虑暴力选根的时候会把很多重复的情况算进去,所以我 ...
分类:
其他好文 时间:
2020-05-29 19:24:43
阅读次数:
65
点分治 1. 1 算法概述 点分治,是一种针对可带权树上简单路径统计问题的算法。本质上是一种带优化的暴力,带上一点容斥的感觉。 注意对于树上路径,并不要求这棵树有根,即我们只需要对无根树进行统计。接下来请把无根树这一关键点牢记于心。 1.2 问题引入 给定一棵树,树上的边有权值,给定一个阈值k,请统 ...
分类:
其他好文 时间:
2020-05-29 17:55:50
阅读次数:
63
TINYTEXT 256 bytes TEXT 65,535 bytes ~64kb MEDIUMTEXT 16,777,215 bytes ~16MB LONGTEXT 4,294,967,295 bytes ~4GB 很简单很暴力,足够您存储很多东东~ ...
分类:
数据库 时间:
2020-05-28 21:53:27
阅读次数:
136
题目: 有效的完全平方数:给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。 说明:不要使用任何内置的库函数,如 sqrt。 示例 1: 输入:16 输出:True 示例 2: 输入:14 输出:False 思路: 暴力法会超时,使用二分查 ...
分类:
编程语言 时间:
2020-05-28 19:38:33
阅读次数:
110
程序优化的最核心的思路 第一步,暴力解法。在没有任何时间、空间约束下,完成代码任务的开发。第二步,无效操作处理。将代码中的无效计算、无效存储剔除,降低时间或空间复杂度。第三步,时空转换。设计合理数据结构,完成时间复杂度向空间复杂度的转移。 说明:常用的降低时间复杂度的方法有递归、二分法、排序算法、动 ...
分类:
其他好文 时间:
2020-05-27 01:13:17
阅读次数:
120
分析 如果采取暴力的做法,那么乘起来会炸longlong,除非写个高精。 再考虑乘一下逆元呢,显然也不行,模数不一定为质数。 这道题的关键点在于这句话,对于每一个类型1的操作至多会被除一次 这句话的最基本的告诉了我们每次得到的答案一定是一个整数 其次,这句话保证了可以应用线段树解决这个问题 如果除的 ...
分类:
其他好文 时间:
2020-05-26 22:11:42
阅读次数:
59
分析 暴力做法是从每个点开始跑最短路,显然会T。 进一步优化的话是将边权乘2,这样就不用跑回来了。 但是还是不行,那么有没有办法可以跑一次最短路就解决了呢。 开一个超级源点就行了。 这样从这个点开始跑,一次Dij后得到的就是答案。 #include<queue> #include<cstdio> # ...
分类:
其他好文 时间:
2020-05-26 21:58:16
阅读次数:
61
题目: 滑动窗口最大值:给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 进阶: 你能在线性时间复杂度内解决此题吗? 示例: 输入: nums = [1,3,-1,-3 ...
分类:
移动开发 时间:
2020-05-26 18:35:29
阅读次数:
157
1二维数组的查找: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 一、暴力法 时间复杂度:空间复杂度:O(1) 二、从左下找 利用该二维数组的性质: 每 ...
分类:
其他好文 时间:
2020-05-26 11:59:53
阅读次数:
71
这题思路上不是很难,但是写起来贼复杂(知道为什么没啥人过了) 其实这题难的不是A的面积有多大,而是确定A后怎么填充剩下的矩形 自己写的代码复制粘贴三百多行,贴上题解的得了 题解用拉伸的填充法把代码化简了好多。。 如果不需要最大化矩形A的面积,则可以用如下算法解决该问题。垂直拉伸每个字母,直到碰到另一 ...
分类:
其他好文 时间:
2020-05-26 00:59:34
阅读次数:
99